简体   繁体   English

azure ad b2c mfa 无密码身份验证技术配置文件合并屏幕

[英]azure ad b2c mfa passwordless authentication technical profile merge screens

I am writing custom profile for azure AD b2c and using this starter kit.我正在为 azure AD b2c 编写自定义配置文件并使用入门套件。

I need to make some changes as when I run SignUpOrSignInWithPhone user journey it opens first input screen.我需要进行一些更改,因为当我运行SignUpOrSignInWithPhone用户旅程时,它会打开第一个输入屏幕。

在此处输入图像描述

Here you can see we can provide valid number and click continue.在这里您可以看到我们可以提供有效的号码,然后单击继续。

Then, it shows second screen like this:然后,它显示第二个屏幕,如下所示:

在此处输入图像描述

Here it asking me to select different country or default and provide valid phone number:在这里它要求我 select 不同的国家或默认值并提供有效的电话号码:

I just want skip the first screen or replace the first screen and it should render screen first time with country dropdown and on validation I receive OTP.我只想跳过第一个屏幕或替换第一个屏幕,它应该第一次使用国家下拉菜单呈现屏幕,并且在验证时我收到 OTP。

<UserJourney Id="SignUpOrSignInWithPhone">
  <OrchestrationSteps>
    <OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="signuporsignin-phone">
      <ClaimsProviderSelections>
        <ClaimsProviderSelection TargetClaimsExchangeId="SignUpWithPhone" />
        <ClaimsProviderSelection TargetClaimsExchangeId="ChangePhoneNumber" />
        <ClaimsProviderSelection ValidationClaimsExchangeId="LocalAccountSigninPhoneExchange" />
      </ClaimsProviderSelections>
      <ClaimsExchanges>
        <!-- <ClaimsExchange Id="LocalAccountSigninPhoneExchange" TechnicalProfileReferenceId="PhoneInputPage-ChangePhoneNumberPolicy" /> -->
        <!-- <ClaimsExchange Id="ChangePhoneNumber" TechnicalProfileReferenceId="PhoneInputPage-ChangePhoneNumberClaimsProviderSelection" /> -->
        <ClaimsExchange Id="LocalAccountSigninPhoneExchange" TechnicalProfileReferenceId="SelfAsserted-LocalAccountSignin-Phone-Only" />
        <!-- <ClaimsExchange Id="LocalAccountSigninPhoneExchange" TechnicalProfileReferenceId="AAD-UserDiscoveryUsingLogonPhoneNumber-Common" /> -->
      </ClaimsExchanges>
    </OrchestrationStep>
    <OrchestrationStep Order="2" Type="ClaimsExchange">
      <Preconditions>
        <Precondition Type="ClaimsExist" ExecuteActionsIf="true">
          <Value>isLocalAccountSignIn</Value>
          <Action>SkipThisOrchestrationStep</Action>
        </Precondition>
      </Preconditions>
      <ClaimsExchanges>
        <ClaimsExchange Id="SignUpWithPhone" TechnicalProfileReferenceId="LocalAccountSignUpWithLogonPhoneNumber" />
        <ClaimsExchange Id="ChangePhoneNumber" TechnicalProfileReferenceId="PhoneInputPage-ChangePhoneNumberClaimsProviderSelection" />
      </ClaimsExchanges>
    </OrchestrationStep>

I commented the code which I tried to replace first screen with second one, but none is working as I need.我评论了我试图用第二个屏幕替换第一个屏幕的代码,但没有一个按我的需要工作。 Thanks in advance please do not make my question rejected.在此先感谢,请不要拒绝我的问题。 I am struggling for last 2 days.我最近两天都在挣扎。

You user journey should look like this你的用户旅程应该是这样的

    <UserJourney Id="SignUpOrSignInWithPhone">
      <OrchestrationSteps>
        <OrchestrationStep Order="1" Type="InvokeSubJourney">
          <JourneyList>
            <Candidate SubJourneyReferenceId="SignInWithPhone" />
          </JourneyList>
        </OrchestrationStep>
        <OrchestrationStep Order="2" Type="InvokeSubJourney">
          <Preconditions>
            <Precondition Type="ClaimsExist" ExecuteActionsIf="false">
              <Value>isChangePhoneNumber</Value>
              <Action>SkipThisOrchestrationStep</Action>
            </Precondition>
          </Preconditions>
          <JourneyList>
            <Candidate SubJourneyReferenceId="ChangePhoneNumber" />
          </JourneyList>
        </OrchestrationStep>
        <OrchestrationStep Order="3" Type="ClaimsExchange">
          <Preconditions>
            <Precondition Type="ClaimsExist" ExecuteActionsIf="true">
              <Value>hasFullProfile</Value>
              <Action>SkipThisOrchestrationStep</Action>
            </Precondition>
          </Preconditions>
          <ClaimsExchanges>
            <ClaimsExchange Id="AADUserReadWithObjectId" TechnicalProfileReferenceId="AAD-UserReadUsingObjectId" />
          </ClaimsExchanges>
        </OrchestrationStep>
        <OrchestrationStep Order="4" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="JwtIssuer" />
      </OrchestrationSteps>
      <ClientDefinition ReferenceId="DefaultWeb" />
    </UserJourney>

Comment-out/Remove this section in PhoneVerificationPage1 technical profile.注释掉/删除PhoneVerificationPage1技术配置文件中的此部分。

         <InputClaimsTransformations>
            <InputClaimsTransformation ReferenceId="GetNationalNumberAndCountryCodeIfInternationalFormat" />
            <InputClaimsTransformation ReferenceId="PhoneNumberToNationalNumber" />
            <InputClaimsTransformation ReferenceId="CreateRandomUPNUserName" />
            <InputClaimsTransformation ReferenceId="CreateUserPrincipalName" />
          </InputClaimsTransformations>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM