Azure ad b2c 如何在AD B2C自定义策略中隐藏授权码验证步骤?

Azure ad b2c 如何在AD B2C自定义策略中隐藏授权码验证步骤?,azure-ad-b2c,Azure Ad B2c,是否可以创建自定义策略,以便在不输入激活代码的情况下在成员激活步骤上重置密码 我正在使用Graph API创建一个用户,并将邀请电子邮件发送到指定的电子邮件地址,并将extension_activationCode声明作为令牌 var emailClaim = new Claim("email", email); var codeClaim = new Claim("extension_ActivationCode", activationCode);

是否可以创建自定义策略,以便在不输入激活代码的情况下在成员激活步骤上重置密码

我正在使用Graph API创建一个用户,并将邀请电子邮件发送到指定的电子邮件地址,并将extension_activationCode声明作为令牌

var emailClaim = new Claim("email", email);
            var codeClaim = new Claim("extension_ActivationCode", activationCode);
            policyClaims.Add(emailClaim);
            policyClaims.Add(codeClaim);
我希望用户点击该电子邮件中的链接,并为其帐户设置密码。当前,UI自动填充代码并显示“继续”按钮,以便用户单击它

<UserJourney Id="MemberActivationDYP">
      <PreserveOriginalAssertion>false</PreserveOriginalAssertion>
      <OrchestrationSteps>           
        <OrchestrationStep Order="1" Type="ClaimsExchange" ContentDefinitionReferenceId="api.localaccount.activation">        
          <ClaimsExchanges>
            <ClaimsExchange Id="LocalAccountPasswordRecoveryVerifiedEmailExchange" TechnicalProfileReferenceId="LocalAccount-ActivationDYP" />
          </ClaimsExchanges>
        </OrchestrationStep>            
        <OrchestrationStep Order="2" Type="ClaimsExchange">
           <Preconditions>
            <Precondition Type="ClaimsExist" ExecuteActionsIf="false">
              <Value>objectId</Value>
              <Action>SkipThisOrchestrationStep</Action>
            </Precondition>
          </Preconditions>
          <ClaimsExchanges>
            <ClaimsExchange Id="AAD-UserReadUsingObjectIdExchange" TechnicalProfileReferenceId="AAD-UserReadUsingObjectId" />
          </ClaimsExchanges>
        </OrchestrationStep>

<TechnicalProfile Id="LocalAccount-Activation">
          <DisplayName>Account Activation</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.localaccount.activation</Item>
            <Item Key="IpAddressClaimReferenceId">IpAddress</Item>
          </Metadata>
          <CryptographicKeys>
            <Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" />
          </CryptographicKeys>
          <IncludeInSso>false</IncludeInSso>
          <InputClaims>
            <InputClaim ClaimTypeReferenceId="email" />
            <InputClaim ClaimTypeReferenceId="extension_activationCode" />
          </InputClaims>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" Required="true" />
            <OutputClaim ClaimTypeReferenceId="extension_activationCode" Required="true" />         
            <OutputClaim ClaimTypeReferenceId="objectId" />
            <OutputClaim ClaimTypeReferenceId="userPrincipalName" />
            <OutputClaim ClaimTypeReferenceId="extension_isAccountActivated" />
          </OutputClaims>
          <ValidationTechnicalProfiles>
            <ValidationTechnicalProfile ReferenceId="AAD-UserReadUsingEmailAddress" />
          </ValidationTechnicalProfiles>
        </TechnicalProfile>

        <TechnicalProfile Id="LocalAccount-ActivationDYP">
          <DisplayName>Member Portal Account Activation</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.localaccount.activation</Item>
            <Item Key="IpAddressClaimReferenceId">IpAddress</Item>
          </Metadata>
          <CryptographicKeys>
            <Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainerCRM" />
          </CryptographicKeys>
          <IncludeInSso>false</IncludeInSso>
          <InputClaims>
            <InputClaim ClaimTypeReferenceId="email" />
            <InputClaim ClaimTypeReferenceId="extension_activationCode" />
          </InputClaims>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" Required="true" />
            <OutputClaim ClaimTypeReferenceId="extension_activationCode" Required="true" />         
            <OutputClaim ClaimTypeReferenceId="objectId" />
            <OutputClaim ClaimTypeReferenceId="userPrincipalName" />
          </OutputClaims>
          <ValidationTechnicalProfiles>
            <ValidationTechnicalProfile ReferenceId="AAD-UserReadUsingEmailAddress-WithCodeDYP" />
          </ValidationTechnicalProfiles>
        </TechnicalProfile>
        <TechnicalProfile Id="AAD-UserReadUsingEmailAddress-WithCodeDYP">
          <Metadata>
            <Item Key="Operation">Read</Item>
            <Item Key="RaiseErrorIfClaimsPrincipalDoesNotExist">true</Item>
            <Item Key="UserMessageIfClaimsPrincipalDoesNotExist">An account could not be found for the provided user ID.</Item>
          </Metadata>
          <IncludeInSso>false</IncludeInSso>
          <InputClaims>
            <InputClaim ClaimTypeReferenceId="email" PartnerClaimType="signInNames" Required="true" />
            <InputClaim ClaimTypeReferenceId="extension_activationCode" Required="true" />
          </InputClaims>
          <OutputClaims>
            <!-- Required claims -->
            <OutputClaim ClaimTypeReferenceId="objectId" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="localAccountAuthentication" />
            <!-- Optional claims -->
            <OutputClaim ClaimTypeReferenceId="userPrincipalName" />
            <OutputClaim ClaimTypeReferenceId="displayName" />
            <OutputClaim ClaimTypeReferenceId="otherMails" />
            <OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" />
            <OutputClaim ClaimTypeReferenceId="extension_TermsOfUseConsented" />
            <OutputClaim ClaimTypeReferenceId="extension_shareDataWithTP" />
            <OutputClaim ClaimTypeReferenceId="extension_isAccountActivated" />
          </OutputClaims>
          <IncludeTechnicalProfile ReferenceId="AAD-Common" />
        </TechnicalProfile>

假的
目标
SkipThisOrchestrationStep
帐户激活
api.localaccount.activation
IP地址
假的
会员门户帐户激活
api.localaccount.activation
IP地址
假的
阅读
真的
找不到提供的用户ID的帐户。
假的
我想隐藏激活码步骤UI,但不想跳过此步骤


有没有办法对用户隐藏此步骤

是-您可以通过

基本上,你把电子邮件地址放在一个签名令牌中,告诉B2C要重置谁的密码

请注意,执行此操作的新方法是通过