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

Azure AD B2C自定义策略中,如何将logout_hint添加至联合IDP注销URL?

解决Azure AD B2C自定义策略中B2B身份提供商注销URL添加logout_hint参数的问题

核心问题定位

你已完成login_hint的声明配置,也能在B2C自身注销链接中带上参数,但单点注销时向联合IDP发送的logout请求未携带logout_hint,导致用户需要手动选择账户才能完成IDP侧注销。

具体配置步骤

1. 确保login_hint声明持久化到用户会话

先保证login_hint在用户登录后被存储到会话声明中,这样注销时能正常获取。在Azure AD B2B的技术配置文件里,添加输出声明并配置持久化:

<TechnicalProfile Id="AADB2B-OIDC">
  <!-- 其他原有配置 -->
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="login_hint" PartnerClaimType="login_hint" />
    <!-- 其他输出声明 -->
  </OutputClaims>
  <PersistedClaims>
    <PersistedClaim ClaimTypeReferenceId="login_hint" />
    <!-- 其他持久化声明 -->
  </PersistedClaims>
</TechnicalProfile>

2. 配置注销技术配置文件的参数映射

找到单点注销对应的技术配置文件,修改注销URL模板并映射login_hint到logout_hint参数:

<TechnicalProfile Id="AADB2B-SingleLogout">
  <DisplayName>Azure AD B2B Single Logout</DisplayName>
  <Protocol Name="OpenIdConnect" />
  <Metadata>
    <Item Key="HttpBinding">GET</Item>
    <!-- 拼接logout_hint参数到注销URL模板 -->
    <Item Key="LogoutEndpoint">https://login.microsoftonline.com/{tenantid}/oauth2/v2.0/logout?logout_hint={login_hint}</Item>
  </Metadata>
  <InputClaims>
    <!-- 将会话中的login_hint声明传递给logout_hint参数 -->
    <InputClaim ClaimTypeReferenceId="login_hint" PartnerClaimType="logout_hint" />
  </InputClaims>
</TechnicalProfile>

3. 确保注销用户旅程正确引用该技术配置

检查SignOut用户旅程的编排步骤,确认调用了上述单点注销技术配置:

<UserJourney Id="SignOut">
  <OrchestrationSteps>
    <!-- 其他注销步骤 -->
    <OrchestrationStep Order="2" Type="ClaimsExchange">
      <ClaimsExchanges>
        <ClaimsExchange Id="AADB2BLogoutExchange" TechnicalProfileReferenceId="AADB2B-SingleLogout" />
      </ClaimsExchanges>
    </OrchestrationStep>
    <!-- 其他注销步骤 -->
  </OrchestrationSteps>
</UserJourney>

4. 验证声明基础配置

确认login_hint的声明类型定义为无限制的字符串:

<ClaimType Id="login_hint">
  <DisplayName>Login Hint</DisplayName>
  <DataType>string</DataType>
  <UserHelpText>Login hint for logout</UserHelpText>
</ClaimType>

如果使用了自定义声明转换提取login_hint,确保该转换在登录流程的技术配置文件中被正确引用。

测试要点

  • 开启浏览器开发者工具,查看B2C向联合IDP发送的注销请求URL,确认logout_hint参数是否存在
  • 若使用POST绑定,检查请求表单中是否包含logout_hint字段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 07:04:59