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

Azure AD B2C:基于BlockSignIn条件的OrchestrationStep配置异常求助

问题分析与解决方案

问题核心

当前配置的逻辑存在反转:步骤3的Precondition设定为BlockSignIn=true时跳过该步骤,但实际需求是**BlockSignIn=true时显示拦截页面,false时跳过该步骤继续后续流程**。错误的逻辑导致BlockSignIn=false时执行了本不该运行的Selfasserted-Blockuser技术配置,引发服务器异常。

修正后的配置

将步骤3的Precondition逻辑反转,仅在BlockSignIn=false时跳过步骤3,确保true时才触发拦截页面:

<OrchestrationStep Order="2" Type="ClaimsExchange">
  <ClaimsExchanges>
  <ClaimsExchange Id="ClaimsTransformation-SetIsTrustedIPClaim" TechnicalProfileReferenceId="ClaimsTransformation-SetIsTrustedIPClaim" />
  </ClaimsExchanges>
</OrchestrationStep>

<OrchestrationStep Order="3" Type="ClaimsExchange">
  <Preconditions>
    <Precondition Type="ClaimEquals" ExecuteActionsIf="true">
      <Value>BlockSignIn</Value>
      <Value>false</Value>
      <Action>SkipThisOrchestrationStep</Action>
    </Precondition>
  </Preconditions>
  <ClaimsExchanges>
    <ClaimsExchange Id="BlockUser" TechnicalProfileReferenceId="Selfasserted-Blockuser" />
  </ClaimsExchanges>
</OrchestrationStep>

额外检查点

  1. 确认Selfasserted-Blockuser技术配置仅包含静态拦截提示,无强制用户输入的字段,避免执行时因无输入项引发异常。示例配置参考:
<TechnicalProfile Id="Selfasserted-Blockuser">
  <DisplayName>IP Blocked</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="ContentDefinitionReferenceId">api.blocked</Item>
  </Metadata>
  <OutputClaims>
    <!-- 无需输出声明,仅展示拦截提示 -->
  </OutputClaims>
</TechnicalProfile>
  1. 确保ContentDefinitionReferenceId="api.blocked"对应的页面模板仅包含静态提示内容,无多余交互表单元素。

验证逻辑

  • API返回BlockSignIn=true:步骤3的Precondition不触发,执行Selfasserted-Blockuser显示拦截页面。
  • API返回BlockSignIn=false:Precondition触发,跳过步骤3,继续后续登录流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 14:43:17