カスタム ポリシーを使用しています。
望ましいユーザー ジャーニーは次のとおりです。
- ユーザーは画面 1 で電子メール/パスワードを入力します。
- 画面 1 の検証が成功すると、ユーザーは画面 2 に送られます。画面 2 では、ユーザーは電子メールに送信されたコードを入力する必要があります。(ユーザーはサインアップ時に既に電子メールを確認していることに注意してください)
私は2を働かせることに行き詰まっています。現在のポリシーは次のようになります。 ステップ 1 は電子メール クレームを出力します。
ステップ 2 は、電子メール クレームを入力として受け取ります。
ステップ 2 では、電子メールが事前に入力された編集可能なテキスト ボックスが表示されます。コードは要求されません。ただし、電子メールが編集されている場合は、コードが要求されます。
<TechnicalProfile Id="VerifyEmailAddress">
<DisplayName>Local Account Signin</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</Item>
</Metadata>
<IncludeInSso>false</IncludeInSso>
<InputClaims>
<InputClaim ClaimTypeReferenceId="signInName" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="signInName" PartnerClaimType="Verified.Email" Required="true"/>
<OutputClaim ClaimTypeReferenceId="objectId" />
<OutputClaim ClaimTypeReferenceId="userPrincipalName" />
<OutputClaim ClaimTypeReferenceId="authenticationSource" />
</OutputClaims>
<ValidationTechnicalProfiles>
<ValidationTechnicalProfile ReferenceId="AAD-UserReadUsingEmailAddress" />
</ValidationTechnicalProfiles>
</TechnicalProfile>