我有一个 Web 应用程序,它使用仅应用程序令牌来覆盖最终用户检索租户中所有网站集的权限。当尝试使用示例中提供的样板代码并稍作更改时,Graph APIaccessDenied
在尝试发出调用时返回https://graph.microsoft.com/v1.0/sites?search=*
。如果我删除WithAppOnly()
,则调用成功[如果分配了 Sites.Read.All 的委派权限]。Sites.Read.All
Azure AD 注册的应用程序已分配给它管理员批准的应用程序范围。
var queryOptions = new List<QueryOption>()
{
new QueryOption("search","*")
};
var sites = await graphServiceClient.Sites.Request(queryOptions)
.WithAppOnly()
.WithScopes("Sites.Read.All")
.GetAsync();
ServiceException: Code: accessDenied
Message: Access denied
Inner error:
AdditionalData:
date: 2021-03-20T21:45:27
request-id: 16933bd6-5e7f-4820-9563-fec75575c9b2
client-request-id: 16933bd6-5e7f-4820-9563-fec75575c9b2
ClientRequestId: 16933bd6-5e7f-4820-9563-fec75575c9b2