gpt4 book ai didi

microsoft-graph-api - 微软图形 API : 403 Forbidden error when trying to retrieve policies on tenant

转载 作者:行者123 更新时间:2023-12-04 07:08:54 25 4
gpt4 key购买 nike

我正在尝试使用 Microsoft Graph API 在 Azure AD 门户上检索为我的租户创建的策略。正如我从图形 API 文档中了解到的那样,所有策略 CRUD 操作都需要 Directory.AccessAsUser.All 的范围。

此范围转换为此处提到的登录用户的权限访问目录 - https://developer.microsoft.com/en-us/graph/docs/authorization/permission_scopes

我一直在尝试在新的 Azure 门户和具有不同故障点的旧门户上配置我的应用程序。

在新门户上:

我按照 https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal 上的说明在我的租户中创建了一个 Web 应用程序.

配置访问控制时,我的租户的唯一订阅是访问 Azure Active Directory,我无法在新门户中对此配置访问控制。在浏览器中,当我选择访问控制 (IAM) 时,我看到错误 - “调用 ARM 失败,httpCode=BadRequest,errorCode=DisallowedOperation,消息=当前订阅类型不允许对任何提供程序命名空间执行操作。请使用不同的订阅。原因=错误请求。”
“添加”角色按钮也被禁用。

我不能在订阅 Azure Active Directory 的访问权限上配置访问控制吗?如果是这样,是否没有其他方法可以使用 API 为我的租户检索策略?

在旧门户上:

对于我的应用程序,我配置了以下权限:

Microsoft Graph
Windows Azure Active Directory

我在门户上验证了这两个 API 都配置了权限访问目录作为登录用户。即使在这种情况下,当我尝试访问 https://graph.microsoft.com/beta/policies 端点以列出我的租户的策略时,我仍然会收到 403 Forbidden。

这是我获得的访问 token 上的有效负载(https://login.microsoftonline.com/{my tenant name}/oauth2/token)

{
"aud": "https://graph.microsoft.com",
"iss": "https://sts.windows.net/8b49696d-462a-4a71-9c5c-f570b2222727/",
"iat": 1491256764,
"nbf": 1491256764,
"exp": 1491260664,
"aio": "Y2ZgYAi68q2XUTk0ykH7/TZzrhYbAA==",
"app_displayname": "test-app",
"appid": "951bb92d-5b68-45ae-bb8b-d768b2696ccc",
"appidacr": "1",
"idp": "https://sts.windows.net/8b49696d-462a-4a71-9c5c-f570b2222727/",
"oid": "7ccea836-d389-4328-a155-67092e2805e9",
"roles": [
"Device.ReadWrite.All",
"User.ReadWrite.All",
"Directory.ReadWrite.All",
"Group.ReadWrite.All",
"IdentityRiskEvent.Read.All"
],
"sub": "7ccea836-d389-4328-a155-67092e2805e9",
"tid": "8b49696d-462a-4a71-9c5c-f570b2222727",
"uti": "4fmUDNWWHkSoTn2-7gtTAA",
"ver": "1.0"
}

显然,此 token 上缺少 Directory.AccessAsUser.All 角色,这导致了 403 错误。因此,要么我在这里遗漏了一些东西,要么 API 中有一个错误阻止了所有权限的正确配置。非常感谢对此的任何帮助/指示!

请注意:
  • 我只使用 beta API,因为我没有在 v1.0 API 上找到相应的策略端点,并且 Azure Graph API 文档建议使用 Microsoft Graph API。
  • 使用相同的配置,使用 Azure Graph API 端点也会为策略端点返回 403 Forbidden 错误(https://msdn.microsoft.com/zh-cn/library/azure/ad/graph/api/policy-operations#列表策略)
  • 最佳答案

    根据访问 token 中的声明,您使用 获取访问 token 客户端凭据流用于委托(delegate)应用程序的 token 。这种 token 中的用户没有这样的委托(delegate)权限。

    要获取用户委托(delegate)权限的访问 token ,您需要使用其他流程,如 授权码授予流程 .您可以引用此链接获取 detail .

    关于microsoft-graph-api - 微软图形 API : 403 Forbidden error when trying to retrieve policies on tenant,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43195556/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com