Azure ad b2c 自定义策略验证错误

Azure ad b2c 自定义策略验证错误,azure-ad-b2c,identity-experience-framework,Azure Ad B2c,Identity Experience Framework,使用AADB2C身份体验框架自定义策略,我试图创建一个UserTravel,它允许多个社交提供商以及本地提供商,但只允许登录,不允许注册。上载包含UserTravely的TrustFrameworkExtensions文件时,上载失败,错误为: 无法上载策略。原因:验证失败:2个验证错误 可在租户“mytenant.onmicrosoft.com”的策略“B2C_1A_TRUSTFRAMEWORKEXTENSIONS”中找到。id为“SignInWithLogonNameExchange”的Cl

使用AADB2C身份体验框架自定义策略,我试图创建一个UserTravel,它允许多个社交提供商以及本地提供商,但只允许登录,不允许注册。上载包含UserTravely的TrustFrameworkExtensions文件时,上载失败,错误为:

无法上载策略。原因:验证失败:2个验证错误 可在租户“mytenant.onmicrosoft.com”的策略“B2C_1A_TRUSTFRAMEWORKEXTENSIONS”中找到。id为“SignInWithLogonNameExchange”的ClaimsChange在租户“mytenant.onmicrosoft.com”的策略“B2C_1A_TRUSTFRAMEWORKEXTENSIONS”中id为“SignInWithLogonNameExchange”的用户旅程中引用,但未找到。id为“SignInWithLogonNameExchange”的ClaimsChange在租户“MBHB2C.onmicrosoft.com”的策略“B2C_1A_TrustFrameworkExtensions”中id为“Signany”的用户旅程中引用,但未找到

UserJourney的第一部分,我认为包含所有相关内容,是:

<UserJourney Id="SignInAny"> 
    <OrchestrationSteps> 
        <OrchestrationStep Order="1" Type="ClaimsProviderSelection" ContentDefinitionReferenceId="api.idpselections"> 
            <ClaimsProviderSelections> 

                <ClaimsProviderSelection TargetClaimsExchangeId="SignInWithLogonNameExchange" /> 
                <ClaimsProviderSelection TargetClaimsExchangeId="KDEWebAppTestExchange" /> 
                <ClaimsProviderSelection TargetClaimsExchangeId="MSAExchange" /> 
                <ClaimsProviderSelection TargetClaimsExchangeId="GoogleExchange" /> 
            </ClaimsProviderSelections> 

            <ClaimsExchanges> 
                <ClaimsExchange Id="SignInWithLogonNameExchange" TechnicalProfileReferenceId="SelfAsserted-LocalAccountSignin-Email" /> 
            </ClaimsExchanges> 
        </OrchestrationStep> 

        <!-- Check if the user has selected to sign in using one of the social providers --> 
        <OrchestrationStep Order="2" Type="ClaimsExchange"> 
            <Preconditions> 
                <Precondition Type="ClaimsExist" ExecuteActionsIf="true"> 
                    <Value>objectId</Value> 
                    <Action>SkipThisOrchestrationStep</Action> 
                </Precondition> 
            </Preconditions> 
            <ClaimsExchanges> 
                <ClaimsExchange Id="KDEWebAppTestExchange" TechnicalProfileReferenceId="KDEWebAppTestProfile" /> 
                <ClaimsExchange Id="MSAExchange" TechnicalProfileReferenceId="MSA-OIDC" /> 
                <ClaimsExchange Id="GoogleExchange" TechnicalProfileReferenceId="Google-OAUTH" /> 
            </ClaimsExchanges> 
        </OrchestrationStep> 
        ...
    </UserJourney> 
</OrchestrationSteps> 

目标
SkipThisOrchestrationStep
...
我不明白“没找到”到底是什么意思

建议

谢谢


Martin

基本上,在
编排步骤
顺序
1中,您有以下行:

<ClaimsProviderSelection TargetClaimsExchangeId="SignInWithLogonNameExchange" /> 

因此,当用户单击与该
ClaimsProviderSelection

相对应的按钮时,IEF不知道该做什么(例如使用哪种技术配置文件)
validationclaimschangeid
是对当前步骤的引用吗?是。谢谢你指出这一点。我曾考虑过更新响应,但本例仅用于登录,而这在注册/登录流中使用,因此我将保持原样。其概念是用户提供一些输入,这些输入必须在用户旅程开始前进行验证。这起到了作用(至少被认为是有效的,尚未测试实际登录功能);但是,我确实需要删除OrchestrationStep 1中的
部分,以避免出现不同的错误
存在重复的键序列“SignInWithLogonNameExchange”
。谢谢
<ClaimsExchange Id="GoogleExchange" TechnicalProfileReferenceId="Google-OAUTH" />