Share via


Azure AD B2C カスタム ポリシーで Microsoft Entra ID SSPR 技術プロファイルを定義する

Note

Azure Active Directory B2C で、カスタム ポリシーは、主に、複雑なシナリオに取り組む用途向けに設計されています。 ほとんどのシナリオで、組み込みユーザー フローを使用することをお勧めします。 まだ行っていない場合は、Active Directory B2C でのカスタム ポリシーの概要に関する記事で、カスタム ポリシー スターター パックの詳細を確認してください。

Azure Active Directory B2C (Azure AD B2C) では、セルフサービス パスワード リセット (SSPR) のメール アドレスの確認がサポートされています。 Microsoft Entra ID SSPR 技術プロファイルを使用して、コードを生成して電子メール アドレスに送信し、コードを確認します。 Microsoft Entra ID SSPR 技術プロファイルでも、エラー メッセージが返される場合があります。 検証技術プロファイルでは、ユーザー体験を続ける前に、ユーザーが入力したデータを検証します。 検証技術プロファイルにより、エラー メッセージがセルフアサート ページに表示されます。

この技術プロファイル:

  • ユーザーとやり取りするためのインターフェイスは用意していません。 代わりに、ユーザー インターフェイスは、セルフアサート技術プロファイルから、または検証技術プロファイルとしての表示制御から呼び出されます。
  • Microsoft Entra SSPR サービスを使用して、コードを生成し、メール アドレスに送信してから、コードを確認します。
  • 確認コードを使用してメール アドレスを検証します。

Protocol

Protocol 要素の Name 属性は Proprietary に設定する必要があります。 handler 属性には、Azure AD B2C により使用される、プロトコル ハンドラー アセンブリの完全修飾名が含まれている必要があります。

Web.TPEngine.Providers.AadSsprProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

次の例は、Microsoft Entra ID SSPR 技術プロファイルを示しています:

<TechnicalProfile Id="AadSspr-SendCode">
  <DisplayName>Send Code</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AadSsprProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    ...

電子メールの送信

この技術プロファイルの最初のモードでは、コードが生成されて送信されます。 このモードに対しては、次のオプションを構成できます。

入力クレーム

InputClaims 要素には、Microsoft Entra SSPR に送信する要求の一覧が含まれます。 要求の名前を、SSPR 技術プロファイルで定義されている名前にマップすることもできます。

ClaimReferenceId 必須 説明
emailAddress はい メール アドレスを所有しているユーザーの識別子。 入力要求の PartnerClaimType プロパティを emailAddress に設定する必要があります。

InputClaimsTransformations 要素には、Microsoft Entra SSPR サービスに送信する前に、入力要求の変更または新しい入力要求の生成に使用される、InputClaimsTransformation 要素のコレクションが含まれる場合があります。

出力クレーム

Microsoft Entra SSPR プロトコル プロバイダーでは OutputClaims は返されないため、出力要求を指定する必要はありません。 ただし、DefaultValue 属性を設定している限り、Microsoft Entra SSPR プロトコル プロバイダーによって返されない要求を含めることができます。

OutputClaimsTransformations 要素には、出力要求を修正したり新しい要求を生成するために使用される、OutputClaimsTransformation 要素のコレクションが含まれている場合があります。

Metadata

属性 必須 説明
Operation はい SendCode である必要があります。

UI 要素

次のメタデータを使用して、SMS 送信に失敗したときに表示されるエラー メッセージを構成できます。 メタデータは、セルフアサート技術プロファイルで構成する必要があります。 エラー メッセージは、ローカライズできます。

属性 必須 説明
UserMessageIfInternalError いいえ サーバーで内部エラーが発生した場合のユーザー エラー メッセージ。
UserMessageIfThrottled いいえ 要求が調整された場合のユーザー エラー メッセージ。

例: メールの送信

次の例は、電子メールでコードを送信するために使用される Microsoft Entra ID SSPR 技術プロファイルを示しています。

<TechnicalProfile Id="AadSspr-SendCode">
  <DisplayName>Send Code</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AadSsprProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">SendCode</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" PartnerClaimType="emailAddress"/>
  </InputClaims>
</TechnicalProfile>

コードの確認

この技術プロファイルの 2 番目のモードでは、コードが検証されます。 このモードに対しては、次のオプションを構成できます。

入力クレーム

InputClaims 要素には、Microsoft Entra SSPR に送信する要求の一覧が含まれます。 要求の名前を、SSPR 技術プロファイルで定義されている名前にマップすることもできます。

ClaimReferenceId 必須 説明
emailAddress はい 以前にコードを送信するために使用したのと同じメール アドレス。 また、電子メール検証セッションを探すためにも使用されます。 入力要求の PartnerClaimType プロパティを emailAddress に設定する必要があります。
verificationCode はい 確認のためにユーザーによって指定された確認コード。 入力要求の PartnerClaimType プロパティを verificationCode に設定する必要があります。

InputClaimsTransformations 要素には、Microsoft Entra SSPR サービスの呼び出しの前に、入力要求の変更または新しい入力要求の生成に使用される、InputClaimsTransformation 要素のコレクションが含まれる場合があります。

出力クレーム

Microsoft Entra SSPR プロトコル プロバイダーでは OutputClaims は返されないため、出力要求を指定する必要はありません。 ただし、DefaultValue 属性を設定している限り、Microsoft Entra SSPR プロトコル プロバイダーによって返されない要求を含めることができます。

OutputClaimsTransformations 要素には、出力要求を修正したり新しい要求を生成するために使用される、OutputClaimsTransformation 要素のコレクションが含まれている場合があります。

Metadata

属性 必須 説明
Operation はい VerifyCode になっている必要があります

UI 要素

次のメタデータを使用して、コード確認に失敗したときに表示されるエラー メッセージを構成できます。 メタデータは、セルフアサート技術プロファイルで構成する必要があります。 エラー メッセージは、ローカライズできます。

属性 必須 説明
UserMessageIfChallengeExpired コード確認セッションの有効期限が切れた場合にユーザーに表示するメッセージ。 コードの有効期限が切れているか、指定された識別子に対してコードが生成されたことがないかのいずれかです。
UserMessageIfInternalError サーバーで内部エラーが発生した場合のユーザー エラー メッセージ。
UserMessageIfThrottled 要求が調整された場合のユーザー エラー メッセージ。
UserMessageIfVerificationFailedNoRetry 無効なコードを指定した場合にユーザーに表示するメッセージ。ユーザーは正しいコードを指定できません。
UserMessageIfVerificationFailedRetryAllowed 無効なコードを指定した場合にユーザーに表示するメッセージ。ユーザーは正しいコードを指定できます。

例: コードを検証する

次の例は、コードの検証に使用される Microsoft Entra ID SSPR 技術プロファイルを示しています。

<TechnicalProfile Id="AadSspr-VerifyCode">
  <DisplayName>Verify Code</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AadSsprProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">VerifyCode</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="verificationCode" PartnerClaimType="verificationCode" />
    <InputClaim ClaimTypeReferenceId="email" PartnerClaimType="emailAddress"/>
  </InputClaims>
</TechnicalProfile>