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

Azure AD B2C自定义策略问题:登录页MFA选择下拉框未显示

解决Azure AD B2C登录页面MFA选择下拉框不显示的问题

问题原因

使用CombinedSignInAndSignUp类型的编排步骤时,对应的api.signuporsignin内容定义模板仅支持基础登录选项展示,不会渲染自断言技术配置中添加的自定义输出声明(如selectedAuthenticationMethod),导致下拉框无法显示,进而因缺少该声明触发报错。

解决方案

1. 启用自断言登录页面的内容定义引用

在SelfAsserted-LocalAccountSignin-Email技术配置中,取消注释并启用ContentDefinitionReferenceId项,指定使用单独的登录页面模板:

<TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Email">
    <!-- 其他配置项 -->
    <Metadata>
        <!-- 取消注释并启用以下配置 -->
        <Item Key="ContentDefinitionReferenceId">api.localaccountsignin</Item>
        <!-- 其他元数据 -->
    </Metadata>
    <!-- 其他配置项 -->
</TechnicalProfile>

2. 替换Combined登录步骤为单独的自断言登录步骤

修改子旅程的编排步骤,移除CombinedSignInAndSignUp类型步骤,改用ClaimsExchange类型直接调用自断言登录技术配置:

<SubJourney Id="SignInBase" Type="Call">
    <OrchestrationSteps>
        <!-- 替换原Order=1的Combined步骤 -->
        <OrchestrationStep Order="1" Type="ClaimsExchange">
            <ClaimsExchanges>
                <ClaimsExchange Id="LocalAccountSigninEmailExchange" TechnicalProfileReferenceId="SelfAsserted-LocalAccountSignin-Email" />
            </ClaimsExchanges>
        </OrchestrationStep>
        <!-- 保留后续步骤 -->
        <OrchestrationStep Order="2" Type="ClaimsExchange">
            <ClaimsExchanges>
                <ClaimsExchange Id="AADUserReadWithEmailAddressBefore" TechnicalProfileReferenceId="AAD-UserReadUsingObjectId" />
            </ClaimsExchanges>
        </OrchestrationStep>
        <!-- 其他编排步骤 -->
    </OrchestrationSteps>
</SubJourney>

3. 匹配本地化资源的内容定义ID

调整本地化配置的Id,使其与技术配置中指定的ContentDefinitionReferenceId一致:

<LocalizedResources Id="api.localaccountsignin.en">
    <LocalizedCollections>
        <LocalizedCollection ElementType="ClaimType" ElementId="selectedAuthenticationMethod" TargetCollection="Restriction">
            <Item Text="App" Value="app" SelectByDefault="true" />
            <Item Text="Phone" Value="phone" />
            <Item Text="Email" Value="email" />
        </LocalizedCollection>
    </LocalizedCollections>
    <LocalizedStrings>
        <!-- 本地化字符串配置 -->
    </LocalizedStrings>
</LocalizedResources>

4. 验证声明流转

确保selectedAuthenticationMethod声明在后续的MFA验证步骤中被正确引用,例如通过该声明的值动态选择对应的MFA技术配置(如基于声明值调用电话验证、邮件验证或应用验证的技术配置)。

完成以上调整后,登录页面将正确显示MFA方式选择下拉框,用户提交时该声明会被正确收集,避免因缺少认证方法导致的报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 16:52:10