无法获取SharePoint API权限ID 找不到ProjectWebApp相关权限GUID
问题原因
你查询不到目标权限ID的核心原因是找错了权限所属的服务主体:
ProjectWebApp.FullControl、ProjectWebAppReporting.Read这两个权限不属于「Office 365 SharePoint Online」服务主体,是Project Online(服务端资源)暴露的专属权限,因此在SharePoint Online的AppRoles集合中永远无法匹配到这两个条目。- 额外注意:不建议仅用
DisplayName作为服务主体的过滤条件,不同租户环境下服务主体显示名可能存在细微差异(比如部分租户显示为「Project Online」「Office 365 Project Online」),用服务端固定的AppId过滤准确率更高。
正确获取权限GUID的操作步骤
- 先拉取Project Online对应的服务主体对象,执行以下PowerShell命令:
# Project Online资源的全局固定AppId为269e0850-c838-4ac5-9b4f-6cfdce28da05 $projectServicePrincipal = Get-AzureADServicePrincipal -All $true | Where-Object { $_.AppId -eq "269e0850-c838-4ac5-9b4f-6cfdce28da05" }
- 从该服务主体的
AppRoles列表中过滤目标权限,执行以下命令即可拿到对应GUID:
$projectServicePrincipal.AppRoles | Where-Object { $_.Value -in @("ProjectWebApp.FullControl", "ProjectWebAppReporting.Read") } | Select-Object Id, Value, DisplayName
两个权限的固定参考GUID
所有Azure AD租户下微软公开服务的权限GUID全局统一,如果临时无法执行命令查询,可以直接使用以下固定值:
ProjectWebApp.FullControl:46e98c6d-e6b8-4c58-80e4-969d82a2b59fProjectWebAppReporting.Read:b62b29c8-1a04-41d1-a959-11b5c3e7d82a
注意:后续配置API权限授予时,资源ID需要填写Project Online服务主体的ObjectId,不要错填为SharePoint Online的服务主体ID,否则权限会配置失败。
内容的提问来源于stack exchange,提问作者Sindhu M S
相关产品推荐
相关产品推荐

