ADB2C 注册后强制用户登录

时间:2021-02-04 16:40:25

标签: azure-ad-b2c

当用户在 adb2c 上注册时,我希望他输入他的登录名/密码,并且尚未连接。

我尝试编辑 signin_signup 政策,但没有结果

1 个答案:

答案 0 :(得分:1)

在自定义策略中,您可以使用自我声明页面向用户显示他们已成功注册,但不允许他们从那里继续旅程。在我们的示例中,这有时称为“块页面”。由于用户无法继续旅程,因此不会发出令牌,也不会建立会话。

您可以改为使用自定义 HTML 页面,以允许用户从此处返回主页。

然后用户需要再次登录以获得经过身份验证的会话。

块页面显示在这里使用: https://github.com/azure-ad-b2c/samples/blob/4e43fab365e29f002e9e033a4e078bc2091a8494/policies/password-reset-only/policy/TrustFrameworkExtensions.xml#L132

        <TechnicalProfile Id="SelfAsserted-BlockSignUpClaimsIssuance">
          <DisplayName>BlockSignUpClaimsIssuance Page</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.selfasserted.blockSignUpPage</Item>
            <!--Demo: hide the continue and cancel buttons -->
            <Item Key="setting.showContinueButton">false</Item>
            <Item Key="setting.showCancelButton">false</Item>
          </Metadata>
          <InputClaimsTransformations>
            <InputClaimsTransformation ReferenceId="GenerateAMessage" />
          </InputClaimsTransformations>
          <InputClaims>
             <InputClaim ClaimTypeReferenceId="userMessage" />
          </InputClaims>
          <OutputClaims>
            <!--Demo: Show the paragraph claim with the message to the user -->
            <OutputClaim ClaimTypeReferenceId="userMessage" />
          </OutputClaims>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
        </TechnicalProfile>

对这一步应用一个先决条件,这样如果 newUser 声明存在,那么这一步不会被跳过:

        <OrchestrationStep Order="YOUR STEP #" Type="ClaimsExchange">
          <Preconditions>
            <Precondition Type="ClaimsExist" ExecuteActionsIf="false">
              <Value>newUser</Value>
              <Action>SkipThisOrchestrationStep</Action>
            </Precondition>
          </Preconditions>
          <ClaimsExchanges>
            <ClaimsExchange Id="SelfAsserted-BlockSignUpClaimsIssuance" />
          </ClaimsExchanges>
        </OrchestrationStep>