即使 API 声明值也不包含请求访问所有网站内容的任何权限级别:
任何人都可以告诉我为什么吗?此应用程序应仅在一个预先选择的网站集中访问和工作。
提前致谢!
关于上述行为的解释,如果不需要,不要授予太多权限
要将 SharePoint API 权限限制到特定站点,请检查以下内容:
创建 Microsoft Entra ID 应用程序:
使用以下 PowerShell 脚本将 SharePoint API 权限限制到特定站点
$siteUrl = “https://xxx.sharepoint.com/sites/testruk”
$clientId = “AppClientID”
$certThumbprint = “Thumbprint”
$tenant = “xxx.onmicrosoft.com”
Connect-PnPOnline -Url $siteUrl -Interactive
$writeperm = Grant-PnPAzureADAppSitePermission -Permissions “Write” -Site $siteUrl -AppId $clientId -DisplayName “PowerShell-SharepointOnline”
$PermissionId = Get-PnPAzureADAppSitePermission -AppIdentity $clientId
Set-PnPAzureADAppSitePermission -Site $siteurl -PermissionId $(($PermissionId).Id) -Permissions “FullControl”
当我尝试连接上述网站时,它成功了:
Connect-PnPOnline -Url $siteUrl -ClientId $clientId -Thumbprint $certThumbprint -Tenant $tenant
Get-PnPList
当我尝试连接到另一个站点时,收到如下错误: