这种情况让我创造了一个真正可怕的变通办法,但有时,你别无选择,对吗?
问题基本上是在您的 Azure AD 应用程序中设置了多个(特定的?)Azure AD 应用程序权限时遇到 503: 'serviceUnavailable' 消息,这不应该发生。
上下文和技术查询
上下文专门针对应用程序权限(仅限应用程序的身份验证)和NOT 委派权限。 token 通过以下方式检索:
HTTP POST https://login.microsoftonline.com/e6fcb01a-f706-4b1b-872b-1e7645d78491/oauth2/v2.0/token
headers:
Content-Type=application/x-www-form-urlencoded
-------------
client_id=<App GUID>
client_secret=<App SECRET>
scope=https://graph.microsoft.com/.default
grant_type=client_credentials
/sites/root 查询检索:
HTTP GET https://graph.microsoft.com/v1.0/sites/root
headers: Authorization=Bearer <AccessToken>
-------------
重现这种情况:
- 创建 Azure AD 应用程序
- 添加应用权限 > Sites.ReadWrite.All
- 授予管理员同意
- 创建 secret
- 生成访问 token (使用)
- 使用 token 运行查询(有效)
强制中断(一次全部添加或逐一添加)
- 添加应用权限 > Group.Create
- 授予管理员同意
- 生成访问 token
- 使用 token 运行查询(失败?)
有用吗?
- 添加应用权限 > Group.ReadWrite.All
- 授予管理员同意
- 生成访问 token
- 使用 token 运行查询(失败?)
- 重复另一个权限。直到它坏掉。
它会坏吗?
- 永远失败
解决方法:
跨多个 AD 应用程序拆分应用程序权限。
最佳答案
我对此进行了测试,问题就在那里但解决方法是如果您拥有Group.ReadWrite.All<,则不需要
.Group.Create
权限
所以总而言之,单个 AD 应用程序可以拥有 Group.ReadWrite.All
和 Sites.ReadWrite.All
权限,它会工作,但单个 AD 应用程序将失败,如果拥有Group.Create
、Group.ReadWrite.All
和Sites.ReadWrite.All
关于azure-active-directory - 结合 Azure AD 应用程序权限时永远运行到 'serviceUnavailable' SharePoint 图形查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60985658/