gpt4 book ai didi

azure - Azure AD 联合的 ID token 不包含 "roles"声明

转载 作者:行者123 更新时间:2023-12-03 00:57:03 27 4
gpt4 key购买 nike

我创建了一个 Azure B2C 租户,并为 Azure Active Directory (AD) 创建了自定义 IDP。我创建了从 B2C 的用户流以联合到 Azure AD 并获取访问 token 。

我遵循的步骤。

  • 创建了 Azure AD 应用
  • 生成了一个 secret
  • 创建了自定义角色
  • 从 AD 企业应用程序向用户分配自定义角色
  • 创建了 B2C 领域的 IDP
  • 创建了 B2C 应用
  • 创建登录政策
  • 添加了联合 IDP
  • 运行用户流程
  • 通过联盟登录

作为联合结果, azure AD 成功检索 token (idp_access_token)。但问题是从 azure AD 检索的 token 不包含角色声明。我创建了两个应用程序角色并将它们分配给用户。但我看不到 token 内的任何角色。

我遵循了以下文档。 https://learn.microsoft.com/en-us/azure/active-directory/develop/howto-add-app-roles-in-azure-ad-apps

这对联盟无效吗?通过联合获取分配的应用程序角色的确切方法是什么。

enter image description here

以下是创建 B2C IDP 所需的详细信息。

enter image description here

如何将这些详细信息与范围解决方案映射?

最佳答案

您需要在 Azure AD 中创建两个应用程序,一个代表客户端应用程序,另一个代表api应用程序,然后使用客户端应用程序调用 api应用程序。

首先,您需要公开受Azure保护的后端应用程序的API并添加客户端应用程序:

enter image description here

接下来需要设置api应用AppRole,这是您自定义的角色,它将显示在 list 中。

enter image description here

然后您可以将角色分配给用户。转到企业应用程序>您的 api 应用程序>用户和组。

enter image description here

接下来,转到客户端应用程序,让您的客户端应用程序访问后端 API:

  • 在“API 权限”下,点击“添加权限”,然后点击“我的 API”标签。
  • 找到您的后端应用程序并选择适当的范围。
  • 点击“添加权限”。
  • 授予管理员对您的 API 的许可。

接下来,您需要使用auth code flow获取Access Token,需要登录用户并获取授权码,然后使用授权码兑换Access Token。

enter image description here

解析 v2.0 token ,它包含 scp 声明和 roles 声明。

enter image description here

关于azure - Azure AD 联合的 ID token 不包含 "roles"声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66363001/

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