运行 合并 Azure AD 应用程序权限时永远 'serviceUnavailable' SharePoint 图形查询

Running into 'serviceUnavailable' SharePoint graph query forever when combining Azure AD App permissions

这种情况让我创造了一个真正可怕的变通办法,但有时,你别无选择,对吗?

问题基本上是遇到了 503: 'serviceUnavailable' 消息,当在您的 Azure AD 应用程序中设置了几个(特定的?)Azure AD 应用程序权限时,这不应该发生。

上下文和技术查询

上下文专门针对应用程序权限(仅限应用程序的身份验证)和 NOT 委派权限。令牌通过以下方式检索:

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>
-------------

重现此情况:

强制中断(一次全部添加或逐一添加)

有效吗?

它坏了吗?

解决方法:

跨多个 AD 应用程序拆分应用程序权限。

根据我的测试(没有测试所有权限),问题确实存在。

有两个主要权限会影响此 API 端点的调用。

它们是 Group.CreateGroup.Selected

不知道为什么会导致/sites/root的调用失败。但强烈建议从用于访问 /sites/root.

的 Azure AD 应用程序中删除这两个权限(也许还有一些其他权限)

同时,在 Azure 门户上为您的 Graph 请求打开支持票证是一个不错的选择。

不幸的是,这是 SharePoint 中以前已知的问题。正在修复中,但我没有可分享的预计推出时间。

我测试了这个,问题就在那里但解决方法是如果你有Group.ReadWrite.All.[=17,你不需要Group.Create许可=]

所以总而言之,单个 AD 应用程序可以拥有 Group.ReadWrite.AllSites.ReadWrite.All 权限并且它可以工作,但是如果单个 AD 应用程序具有 Group.Create 的所有三个权限,它将失败, Group.ReadWrite.AllSites.ReadWrite.All