Azure AD 联合的 ID 令牌不包含“角色”声明

2023-12-02

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

我遵循的步骤。

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

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

我遵循以下文档。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,这是您自定义的角色,它将显示在清单中。

enter image description here

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

enter image description here

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

  • 在“API 权限”下,单击“添加权限”,然后单击“我的 API”选项卡。
  • 找到您的后端应用程序并选择适当的范围。
  • 单击“添加权限”。
  • 授予管理员对您的 API 的同意。

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

enter image description here

解析 v2.0 令牌,它包含两者scp索赔和roles claims.

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Azure AD 联合的 ID 令牌不包含“角色”声明 的相关文章

随机推荐

  • 在 Java 中检查字符串是否代表整数的最佳方法是什么?

    我通常使用以下习惯用法来检查字符串是否可以转换为整数 public boolean isInteger String input try Integer parseInt input return true catch Exception
  • 如何检测浏览器何时阻止 iFrame

    在 https 网站上 我尝试将随机提交的 URL 加载到 iframe 中 从而允许用户看到嵌入在我自己的用户界面中的网站 只要远程 url 是 https 就像我自己的网站 并且远程服务器没有明确阻止自身嵌入 iframe 网站就会在
  • 通过 API 从 Instagram 照片中提取纬度/经度

    默认情况下 Instagram 会保存所有提交的照片的地理标签 然后您可以使用按位置搜索 media search 但是 当我尝试使用以下命令从特定图片中提取地理标签时 media media id 我总是得到 location null在
  • word - 突出显示搜索结果而不永久更改文档格式

    我想突出显示搜索结果 类似于单词的本机搜索正在执行的操作 换句话说 我不希望搜索操作在文档中产生副作用 例如通过更改返回的文本范围中的字体颜色 var searchResults paragraph search searchValue c
  • 根据第一个数组对多个数组进行排序

    目前我正在开发一个项目 需要对总共 6 个数组进行排序 我已经设法使用快速排序对数组进行单独排序 但是 我只是想知道是否有一种方法可以对 1 个数组进行排序并将其反映在其他数组中元素的顺序上 例如 如果我将日期数组按升序排序 我希望其他数组
  • 在 jQuery 对话框中隐藏标题栏并显示关闭按钮

    我已隐藏标题栏jQuery Dialog如下 ui dialog titlebar hide 这也隐藏了关闭按钮Dialog 但我需要显示关闭按钮Dialog 我怎样才能做到这一点 添加以下 CSS 将隐藏标题文本和样式 保留关闭按钮 se
  • 在 Web 应用程序 Application_Start 方法中初始化 NServiceBus 时出现 NullReferenceException

    我正在运行 NServiceBus 2 0 RTM 当我的 MessageModule 将 CurrentSessionContext 绑定到我的 NHibernate sessionfactory 时 我收到 NullReferenceE
  • 无法转换为已实现的接口

    我很困惑 我有一个直接实现接口的类 public class Device implements AutocompleteResult 这是我正在查看正确变量的证据 Object match log debug match getClass
  • 应用程序“不包含正确的测试版权利”

    我提交了一份审核申请 我注意到我提交的构建有一个与之相关的问题 Build 168 does not contain the correct beta entitlement 我无法在任何地方找到有关此错误的信息 这意味着什么 它会阻碍审查
  • 使用 rmongodb 和 plyr 将大型 MongoDB 集合传输到 R 中的 data.frame

    当我尝试使用 rmongodb 和 plyr 包将数据帧从 MongoDB 传输到 R 时 我得到了一些奇怪的结果 我从有关该主题的各种 github 和论坛中获取了此代码 并根据我的目的进行了调整 load the both packag
  • 如何从列表框中删除所选项目 C#

    我目前正在尝试查看用户在列表框中选择的所有文件和文件夹 目前 我可以使用 openfiledialogue 列出用户选择的内容 但是当我尝试从列表框中删除它时 我现在面临问题 我试图允许用户单击文件旁边的复选框并按删除按钮将其删除 这是我的
  • 检查用户是否在 Skype 上注册

    我正在使用 Skype API 进行视频通话 到目前为止 视频通话工作正常 我使用 Xml 文件来保存 Skype 凭据 用于呼叫任何其他 Skype 朋友 用户 在将 Skype 凭据保存到 Xml 文件之前 我想确保提供的用户名是否已在
  • 在 CodeIgniter 中使用批量插入获取查询的最后插入 ID 时出错

    如何使用 CodeIgniter 中的批量插入获取查询的最后插入 ID 我用了代码 this gt db gt insert id 但它返回我第一个插入的数组的 ID 我无法获取最后一个插入内容 这就是我所做的 for x 0 x lt s
  • 如果我的 C# 中的 Main 方法是私有的,为什么我的程序还能运行?

    默认情况下 类中每个成员的类型修饰符都是私有的 甚至 Main 函数类型修饰符也是私有的 CLR如何调用外界不可见的main方法 CLR 不关心以下内容的可访问性main 对外可见 仅适用于code 不是runtime
  • Android 中的 HTML 解析

    我正在尝试学习如何解析 HTML 但由于我在 Java 或 Android 方面没有太多经验 所以有点复杂 我已阅读 IBM XML 解析教程并学会了解析 RSS 提要 我的问题是 我想从 HTML 站点获取数据 我已经阅读了一些有关 HT
  • 在 Tastypie 中获取请求参数

    我正在为我的应用程序构建一个 REST API 该应用程序使用 Tastypie 使用 NoSQL 数据库 Neo4j 所以我重写了该类的一些主要方法tastypie resources Resource这样做 目前正在努力实施def ob
  • 将 CQ5 组件设置为可编辑或不可编辑

    如果我想设置 cq5 组件在页面 A 中可编辑 但在页面 B 中不可编辑 是否可以 例如 在页面 A 我有 C 组件 我们允许作者打开对话框并编辑组件 但我们不允许作者打开对话框来编辑页面 B 上的组件 C 我尝试研究 cq EditCon
  • CSS 无法在 Firefox、Opera 和 IE 中加载 - Chrome 和 Safari 工作正常

    我在网站建设中遇到了一些问题 重点是在 Chrome 和 Safari 中它工作得很好 但在 Firefox Opera 和 Internet Explorer 中则不太一样 请查看此处的网站 你可以在我提到的浏览器中尝试一下 并确认我刚才
  • 在 C 中是否有强制类型不兼容的好方法?

    出于类型检查的目的 我想定义一个函数 void myfunc type1 a type2 b where type1 and type2都类型定义为uint8 t 到目前为止一切顺利 但出于理智和检查目的 想想 DbC 我想防止使用type
  • Azure AD 联合的 ID 令牌不包含“角色”声明

    我创建了一个 Azure B2C 租户 并为 Azure Active Directory AD 创建了自定义 IDP 我创建了从 B2C 联合到 Azure AD 的用户流并获取访问令牌 我遵循的步骤 创建了azure AD应用程序 生成