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

在Entra External ID中如何实现Azure B2C ClaimsResolvers的等效功能?

在Entra External ID中实现两种授权参数处理方案

一、利用domain_hint激活对应外部OIDC身份提供者

Entra External ID的自定义策略机制和Azure B2C高度兼容,你可以沿用类似逻辑实现:

  • 先在自定义策略的声明定义部分,添加domain_hint的声明类型:
    <ClaimType Id="domain_hint">
      <DisplayName>Domain Hint</DisplayName>
      <DataType>string</DataType>
    </ClaimType>
    
  • 在授权端点的技术配置文件(通常是SelfAsserted-LocalAccountSignin-Email或对应端点的配置)中,添加输入声明映射,捕获请求中的domain_hint参数:
    <InputClaims>
      <InputClaim ClaimTypeReferenceId="domain_hint" PartnerClaimType="domain_hint" />
    </InputClaims>
    
  • 针对目标外部OIDC身份提供者的技术配置文件,启用基于声明值的激活逻辑:
    <TechnicalProfile Id="OIDC-YourProvider">
      <DisplayName>Your External OIDC Provider</DisplayName>
      <Protocol Name="OpenIdConnect" />
      <!-- 其他OIDC配置 -->
      <EnabledForUserJourneys>OnClaimValue</EnabledForUserJourneys>
      <ClaimTypeOnWhichToEnable>domain_hint</ClaimTypeOnWhichToEnable>
      <ClaimValueOnWhichToEnable>abc.com</ClaimValueOnWhichToEnable>
    </TechnicalProfile>
    
    这样当授权请求传入&domain_hint=abc.com时,该OIDC提供者会被自动激活。

二、传递redirect_uri到REST令牌增强API

同样通过自定义策略的声明映射和REST技术配置文件实现:

  • 先定义redirect_uri的声明类型:
    <ClaimType Id="redirect_uri">
      <DisplayName>Redirect URI</DisplayName>
      <DataType>string</DataType>
    </ClaimType>
    
  • 在授权端点的技术配置文件中添加输入声明,捕获请求中的redirect_uri:
    <InputClaims>
      <InputClaim ClaimTypeReferenceId="redirect_uri" PartnerClaimType="redirect_uri" />
    </InputClaims>
    
  • 配置REST技术配置文件,将redirect_uri作为输入参数传给你的令牌增强API:
    <TechnicalProfile Id="REST-TokenEnhancement">
      <DisplayName>Token Enhancement API</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="ServiceUrl">https://your-api-domain.com/enhance-token</Item>
        <Item Key="SendClaimsIn">Body</Item>
      </Metadata>
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="redirect_uri" PartnerClaimType="redirectUri" />
        <!-- 其他需要传入的声明 -->
      </InputClaims>
      <OutputClaims>
        <!-- 定义API返回的声明,比如用户额外属性 -->
        <OutputClaim ClaimTypeReferenceId="custom_backend_data" PartnerClaimType="backendData" />
      </OutputClaims>
      <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
    </TechnicalProfile>
    
  • 在用户旅程的合适阶段(比如完成身份验证后、颁发令牌前)添加这个REST技术配置文件的步骤,确保redirect_uri被传递到API,返回的声明会被包含在最终令牌中。

注意:Entra External ID的自定义策略基于Azure AD B2C的框架演进,大部分配置逻辑通用,但需确保使用Entra External ID对应的策略命名空间和最新的架构版本。

内容的提问来源于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:22:34