azure-active-directory - 结合 Azure AD 应用程序权限时永远运行到 'serviceUnavailable' SharePoint 图形查询

标签 azure-active-directory microsoft-graph-api azure-ad-graph-api

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

问题基本上是在您的 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.AllSites.ReadWrite.All 权限,它会工作,但单个 AD 应用程序将失败,如果拥有Group.CreateGroup.ReadWrite.AllSites.ReadWrite.All

三种权限

关于azure-active-directory - 结合 Azure AD 应用程序权限时永远运行到 'serviceUnavailable' SharePoint 图形查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60985658/

相关文章:

azure - 将/groups/{id}/members 上的 $filter 查询参数与 Azure B2C 租户的 Graph API 结合使用

python - Azure AD : Change user password from Custom App

c# - 使用Graph API获取用户信息

Azure Active Directory 组 - 通过 API 更改组策略

azure - https ://graph. microsoft.com/v1.0/me 对于我以外的其他用户返回 403

asp.net-core - 如何修复 "AADSTS90102: ' redirect_uri' 值必须是有效的绝对 Uri。“Microsoft Graph 中的错误

office365 - Microsoft Graph API : can't list recurring events of a meeting room

rest - Microsoft graph api - 无刷新 token

azure - 无法使用 Graph API 删除 Azure B2C 中的用户

c# - 如何以编程方式删除 Azure Active Directory 用户?