You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Entra External ID中实现外部OIDC身份提供商声明处理?

问题

我当前使用Azure B2C自定义策略,正考虑采用新款Entra External ID产品作为替代方案。在自定义策略中,我可利用外部OIDC身份提供商(IdP)返回的声明完成多种操作,例如通过以下自定义策略片段(外部OIDC身份提供商ClaimsProvider内的OutputClaim),将外部IdP的groups声明映射为自定义的authzGroups声明:

<OutputClaim ClaimTypeReferenceId="authzGroups" PartnerClaimType="groups" />

具体应用场景包括:

  • 将authzGroups声明作为OutputClaim传递给依赖方(应用程序);
  • 结合声明转换与编排步骤前置条件,若groups返回值不匹配预定义组ID集合,则向用户展示错误页面而非颁发令牌。

请问在Entra External ID中,如何实现类似的外部OIDC身份提供商声明操作?

解决方案

场景1:映射外部IdP声明并传递给依赖方

在Entra External ID里,通过用户流配置就能搞定声明映射和传递:

  1. 先创建自定义声明authzGroups:
    • 打开目标用户流的「用户属性」页面,点击「添加属性」,选择「自定义属性」,创建名为authzGroups的属性(选字符串集合类型,适配多组场景)。
  2. 配置外部OIDC身份提供商的声明映射:
    • 进入外部OIDC IdP的配置页,找到「声明映射」区域。
    • 添加映射规则:把外部IdP返回的groups声明,映射到刚创建的authzGroups自定义声明。
  3. 配置应用程序声明:
    • 在用户流的「应用程序声明」页面,勾选authzGroups,这样该声明就会被包含在发给依赖方的令牌里。

场景2:基于外部组声明做授权校验

用Entra External ID的自定义规则实现前置校验:

  1. 先完成场景1的配置,确保authzGroups能正确获取外部IdP的组数据。
  2. 添加授权规则:
    • 进入用户流的「自定义规则」页面,新建一条规则,类型选「授权规则」,触发时机设为「颁发令牌之前」。
    • 编写规则逻辑:检查authzGroups是否包含你预定义的组ID(比如["allowed-group-1", "allowed-group-2"])。
    • 配置不匹配时的动作:选择「阻止登录并显示错误消息」,自定义提示内容(比如「你没有访问权限,请联系管理员」)。
  3. 保存启用规则后,用户登录时如果外部IdP返回的组不在允许列表里,会直接跳错误页面,不会发令牌。

内容的提问来源于stack exchange,提问作者Bandz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 01:37:16