在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
相关产品推荐
相关产品推荐

