次の方法で共有


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

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

重要

2025 年 5 月 1 日より、Azure AD B2C は新規のお客様向けに購入できなくなります。 詳細については、FAQ を参照してください

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

この技術プロファイル:

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

プロトコル

Protocol 要素の Name 属性は Proprietary に設定する必要があります。 ハンドラー属性には、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 (クレーム参照ID) 必須 説明
メールアドレス イエス 電子メール アドレスを所有するユーザーの識別子。 入力要求の PartnerClaimType プロパティは、 emailAddressに設定する必要があります。

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

出力要求

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

OutputClaimsTransformations 要素には、出力要求の変更または新しい要求の生成に使用される OutputClaimsTransformation 要素のコレクションを含めることができます。

メタデータ

特性 必須 説明
オペレーション イエス 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 (クレーム参照ID) 必須 説明
メールアドレス イエス 以前にコードを送信するために使用したのと同じメール アドレス。 また、電子メール検証セッションを見つけるためにも使用されます。 入力要求の PartnerClaimType プロパティは、 emailAddressに設定する必要があります。
verificationCode (検証コード) イエス 検証対象のユーザーによって提供される検証コード。 入力要求の PartnerClaimType プロパティは、 verificationCodeに設定する必要があります。

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

出力要求

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

OutputClaimsTransformations 要素には、出力要求の変更または新しい要求の生成に使用される OutputClaimsTransformation 要素のコレクションを含めることができます。

メタデータ

特性 必須 説明
オペレーション イエス 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>