【问题标题】:Microsoft Graph API roles claim not in token but Application permissions addedMicrosoft Graph API 角色声明不在令牌中,但添加了应用程序权限
【发布时间】:2021-08-17 15:06:50
【问题描述】:

我正在尝试连接到 Microsoft Graph API 以使用 excel 函数,作为服务器到服务器的连接/流。 https://docs.microsoft.com/en-us/graph/excel-use-functions

在 Azure AD 中,我构建了注册的应用程序:

我已经创建了秘密...并且还添加了 API 权限。

在 Postman 中,我可以很好地获取令牌......但我注意到角色不包含在令牌中。这是请求:

然后当我向 RATE 的 excel 函数发出请求时,我得到了这个错误:

{
    "error": {
        "code": "AccessDenied",
        "message": "Either scp or roles claim need to be present in the token.",
        "innerError": {
            "date": "2021-08-17T14:31:04",
            "request-id": "b0d65e3c-4acd-4a8a-82c4-1c4c5f2216ac",
            "client-request-id": "b0d65e3c-4acd-4a8a-82c4-1c4c5f2216ac"
        }
    }
}

我仍然在这里的每篇文章都提到 API 权限并以管理员身份授予同意......我已经完成了,但我仍然收到错误。有什么想法吗?

【问题讨论】:

    标签: microsoft-graph-api azure-ad-graph-api


    【解决方案1】:

    请检查是否有任何声明映射策略链接到应用程序服务主体。

    1. 导航到 Azure Active Directory > 企业应用程序 > 使用您在令牌请求中使用的客户端 ID 进行搜索 > 复制应用程序的对象 ID。请记住,此对象 ID 与应用注册下存在的应用程序对象的对象 ID 不同。
    2. 运行 Get-AzureADServicePrincipalPolicy -Id object_id_copied_in_step_1 | fl 以检查是否链接了任何声明映射策略。
    3. 如果有与其关联的 cliams 映射策略,请运行 Remove-AzureADServicePrincipalPolicy 以删除该策略。

    https://jwt.ms 解码您的不记名令牌,以确认角色声明是否已填充。在这种情况下不会填充 SCP 声明,因为它仅在用户上下文中获取令牌时才会填充。

    【讨论】:

      猜你喜欢
      • 2021-09-29
      • 2019-09-13
      • 2022-11-11
      • 1970-01-01
      • 2020-12-28
      • 2023-04-03
      • 2020-04-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多