重要
2025 年 5 月 1 日より、Azure AD B2C は新規のお客様向けに購入できなくなります。 詳細については、FAQ を参照してください。
Azure Active Directory B2C (Azure AD B2C) では、確認コードを使用して電話番号を確認したり、時刻ベースのワンタイム パスワード (TOTP) コードを確認したりすることができます。
プロトコル
Protocol 要素の Name 属性は Proprietary
に設定する必要があります。
ハンドラー属性には、Azure AD B2C で使用されるプロトコル ハンドラー アセンブリの完全修飾名が含まれている必要があります。
Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
次の例は、Microsoft Entra ID 多要素認証技術プロファイルを示しています。
<TechnicalProfile Id="AzureMfa-SendSms">
<DisplayName>Send Sms</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
...
電話モードを確認する
電話の確認モードでは、技術プロファイルによってコードが生成され、電話番号に送信され、コードが検証されます。 Microsoft Entra ID 多要素認証技術プロファイルでも、エラー メッセージが返される場合があります。 検証技術プロファイルは、ユーザー体験が続行される前に、ユーザーが指定したデータを検証します。 検証技術プロファイルでは、セルフアサート ページにエラー メッセージが表示されます。 技術プロファイル:
- ユーザーと対話するためのインターフェイスは提供されません。 代わりに、ユーザー インターフェイスは セルフアサート 技術プロファイル、または検証技術プロファイルとして 表示コントロール から呼び出 されます。
- Microsoft Entra 多要素認証サービスを使用して、コードを生成して電話番号に送信し、コードを検証します。
- テキスト メッセージを使用して電話番号を検証します。
技術プロファイルには、SMS テキスト メッセージを介して 検証コードを送信 し、 コードを検証する方法が用意されています。 次のスクリーンショットは、電話検証ツールのフローを示しています。
SMS を送信する
電話を確認するために、最初の手順でコードが生成され、電話番号に送信されます。 この手順では、次のオプションを構成できます。
入力クレーム
InputClaims 要素には、Microsoft Entra 多要素認証に送信する要求の一覧が含まれています。 要求の名前を、MFA 技術プロファイルで定義されている名前にマップすることもできます。
ClaimReferenceId (クレーム参照ID) | 必須 | 説明 |
---|---|---|
userPrincipalName |
イエス | 電話番号を所有するユーザーの識別子。 |
phoneNumber |
イエス | SMS コードを送信する電話番号。 |
companyName |
いいえ | SMS の会社名。 指定しない場合は、アプリケーションの名前が使用されます。 |
locale |
いいえ | SMS のロケール。 指定しない場合は、ユーザーのブラウザー ロケールが使用されます。 |
出力クレーム
Microsoft Entra 多要素認証プロトコル プロバイダーは出力要求を返さないため、出力要求を指定する必要はありません。
メタデータ
Metadata 要素には、次の属性が含まれています。
特性 | 必須 | 説明 |
---|---|---|
Operation |
イエス |
OneWaySMS である必要があります。 |
UI 要素
次のメタデータを使用して、SMS エラーの送信時に表示されるエラー メッセージを構成できます。 メタデータは、 セルフアサート 技術プロファイルで構成する必要があります。 エラー メッセージは、ローカライズできます。
特性 | 必須 | 説明 |
---|---|---|
UserMessageIfCouldntSendSms |
いいえ | 指定された電話番号が SMS を受け入れない場合のユーザー エラー メッセージ。 |
UserMessageIfInvalidFormat |
いいえ | 指定された電話番号が有効な電話番号でない場合のユーザー エラー メッセージ。 |
UserMessageIfServerError |
いいえ | サーバーで内部エラーが発生した場合のユーザー エラー メッセージ。 |
UserMessageIfThrottled |
いいえ | 要求が調整された場合のユーザー エラー メッセージ。 |
例: SMS を送信する
次の例は、SMS 経由でコードを送信するために使用される Microsoft Entra ID 多要素認証技術プロファイルを示しています。
<TechnicalProfile Id="AzureMfa-SendSms">
<DisplayName>Send Sms</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="Operation">OneWaySMS</Item>
</Metadata>
<InputClaimsTransformations>
<InputClaimsTransformation ReferenceId="CombinePhoneAndCountryCode" />
<InputClaimsTransformation ReferenceId="ConvertStringToPhoneNumber" />
</InputClaimsTransformations>
<InputClaims>
<InputClaim ClaimTypeReferenceId="userPrincipalName" />
<InputClaim ClaimTypeReferenceId="fullPhoneNumber" PartnerClaimType="phoneNumber" />
</InputClaims>
</TechnicalProfile>
コードの確認
コードの検証手順では、ユーザーに送信されたコードを確認します。 この手順では、次のオプションを構成できます。
入力クレーム
InputClaims 要素には、Microsoft Entra 多要素認証に送信する要求の一覧が含まれています。 要求の名前を、MFA 技術プロファイルで定義されている名前にマップすることもできます。
ClaimReferenceId (クレーム参照ID) | 必須 | 説明 |
---|---|---|
phoneNumber |
イエス | 以前にコードを送信するために使用したのと同じ電話番号。 また、電話検証セッションを見つけるためにも使用されます。 |
verificationCode |
イエス | 検証対象のユーザーによって提供される検証コード |
出力クレーム
Microsoft Entra 多要素認証プロトコル プロバイダーは出力要求を返さないため、出力要求を指定する必要はありません。
メタデータ
Metadata 要素には、次の属性が含まれています。
特性 | 必須 | 説明 |
---|---|---|
Operation |
イエス |
Verify である必要があります。 |
UI 要素
次のメタデータを使用して、コード検証エラー時に表示されるエラー メッセージを構成できます。 メタデータは、 セルフアサート 技術プロファイルで構成する必要があります。 エラー メッセージは、ローカライズできます。
特性 | 必須 | 説明 |
---|---|---|
UserMessageIfMaxAllowedCodeRetryReached |
いいえ | ユーザーが確認コードを何度も試みた場合のユーザー エラー メッセージ。 |
UserMessageIfServerError |
いいえ | サーバーで内部エラーが発生した場合のユーザー エラー メッセージ。 |
UserMessageIfThrottled |
いいえ | 要求が調整された場合のユーザー エラー メッセージ。 |
UserMessageIfWrongCodeEntered |
いいえ | 確認のために入力されたコードが間違っている場合のユーザー エラー メッセージ。 |
例: コードを確認する
次の例は、コードの検証に使用される Microsoft Entra ID 多要素認証技術プロファイルを示しています。
<TechnicalProfile Id="AzureMfa-VerifySms">
<DisplayName>Verify Sms</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="Operation">Verify</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="phoneNumber" PartnerClaimType="phoneNumber" />
<InputClaim ClaimTypeReferenceId="verificationCode" />
</InputClaims>
</TechnicalProfile>
TOTP モード
このモードでは、ユーザーが所有するデバイスに、 Microsoft Authenticator アプリなどの時間ベースのワンタイム パスワード (TOTP) 検証をサポートする認証アプリをインストールする必要があります。
最初のサインアップまたはサインイン時に、ユーザーは QR コードをスキャンするか、ディープ リンクを開くか、認証アプリを使用してコードを手動で入力します。 TOTP コードを確認するには、 OTP の確認を開始 し、その後に TOTP 検証技術プロファイル を確認 します。
以降のサインインでは、 Get available devices メソッドを使用して、ユーザーが既にデバイスを登録しているかどうかを確認します。 使用可能なデバイスの数が 0 より大きい場合は、ユーザーが以前に登録したことを示します。 この場合、ユーザーは認証アプリに表示される TOTP コードを入力する必要があります。
技術プロファイル:
- ユーザーと対話するためのインターフェイスは提供されません。 代わりに、ユーザー インターフェイスは、TOTP 表示コントロールを使用して、セルフアサート技術プロファイルから呼び出されます。
- Microsoft Entra 多要素認証サービスを使用して TOTP コードを検証します。
- ユーザーが既にデバイスを登録しているかどうかを確認します。
次のスクリーンショットは、TOTP 登録と検証フローを示しています。 まず、使用可能なデバイスの数を確認します。 使用可能なデバイスの数が 0 の場合、ユーザーは登録オーケストレーション手順を実行します。 それ以外の場合、ユーザーは検証オーケストレーションの手順を実行します。
使用可能なデバイスを取得する
使用可能なデバイスの取得モードでは、ユーザーが使用できるデバイスの数を確認します。 使用可能なデバイスの数が 0 の場合は、ユーザーがまだ登録されていないことを示します。
入力クレーム
InputClaims 要素には、Microsoft Entra 多要素認証に送信する要求の一覧が含まれています。 要求の名前を、MFA 技術プロファイルで定義されている名前にマップすることもできます。
ClaimReferenceId (クレーム参照ID) | 必須 | 説明 |
---|---|---|
userPrincipalName |
イエス | ユーザー プリンシパル名。 |
出力クレーム
出力要求要素には、Microsoft Entra 多要素認証から返される要求の一覧が含まれています。 要求の名前を、MFA 技術プロファイルで定義されている名前にマップすることもできます。
ClaimReferenceId (クレーム参照ID) | 必須 | 説明 |
---|---|---|
numberOfAvailableDevices |
イエス | ユーザーが使用できるデバイスの数。 |
メタデータ
Metadata 要素には、次の属性が含まれています。
特性 | 必須 | 説明 |
---|---|---|
Operation |
イエス |
GetAvailableDevices である必要があります。 |
例: 使用可能なデバイスを取得する
次の例は、使用可能なデバイスの数を取得するために使用される Microsoft Entra ID 多要素認証技術プロファイルを示しています。
<TechnicalProfile Id="AzureMfa-GetAvailableDevices">
<DisplayName>Get Available Devices</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="Operation">GetAvailableDevices</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="userPrincipalName" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="numberOfAvailableDevices" />
</OutputClaims>
</TechnicalProfile>
TOTP の確認を開始する
確認を開始すると、TOTP によって検証プロセスが開始されます。 この検証技術プロファイルは、TOTP コードを提示および検証するセルフアサート技術プロファイルから呼び出されます。 この検証技術プロファイルの後に、 TOTP 検証技術プロファイルを検証する呼び出しが続く必要があります。
入力クレーム
InputClaims 要素には、Microsoft Entra 多要素認証に送信する要求の一覧が含まれています。 要求の名前を、MFA 技術プロファイルで定義されている名前にマップすることもできます。
ClaimReferenceId (クレーム参照ID) | 必須 | 説明 |
---|---|---|
userPrincipalName |
イエス | ユーザー プリンシパル名。 |
objectId |
イエス | ユーザー オブジェクト ID。 |
secretKey |
イエス | ユーザーの秘密鍵。 このキーは、Azure AD B2C ディレクトリ内のユーザーのプロファイルに格納され、認証アプリと共有されます。 認証アプリは、シークレットを使用して TOTP コードを生成します。 この技術プロファイルでは、シークレットを使用して TOTP コードを検証します。 |
出力クレーム
Microsoft Entra 多要素認証プロトコル プロバイダーは出力要求を返さないため、出力要求を指定する必要はありません。
メタデータ
Metadata 要素には、次の属性が含まれています。
特性 | 必須 | 説明 |
---|---|---|
Operation |
イエス |
BeginVerifyOTP である必要があります。 |
例: TOTP の確認を開始する
次の例は、TOTP 検証プロセスを開始するために使用される Microsoft Entra ID 多要素認証技術プロファイルを示しています。
<TechnicalProfile Id="AzureMfa-BeginVerifyOTP">
<DisplayName>Begin verify TOTP"</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="Operation">BeginVerifyOTP</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="secretKey" />
<InputClaim ClaimTypeReferenceId="objectId" />
<InputClaim ClaimTypeReferenceId="userPrincipalName" />
</InputClaims>
</TechnicalProfile>
TOTP を確認する
VERIFY TOTP メソッドは、TOTP コードを検証します。 この検証技術プロファイルは、TOTP コードを提示および検証するセルフアサート技術プロファイルから呼び出されます。 この検証技術プロファイルの前に、 BEGIN verify TOTP 検証技術プロファイルを呼び出す必要があります。
入力クレーム
InputClaims 要素には、Microsoft Entra 多要素認証に送信する要求の一覧が含まれています。 要求の名前を、MFA 技術プロファイルで定義されている名前にマップすることもできます。
ClaimReferenceId (クレーム参照ID) | 必須 | 説明 |
---|---|---|
otpCode |
イエス | ユーザーによって提供される TOTP コード。 |
出力クレーム
Microsoft Entra 多要素認証プロトコル プロバイダーは出力要求を返さないため、出力要求を指定する必要はありません。
メタデータ
Metadata 要素には、次の属性が含まれています。
特性 | 必須 | 説明 |
---|---|---|
Operation |
イエス |
VerifyOTP である必要があります。 |
例: TOTP を確認する
次の例は、TOTP コードの検証に使用される Microsoft Entra ID 多要素認証技術プロファイルを示しています。
<TechnicalProfile Id="AzureMfa-VerifyOTP">
<DisplayName>Verify OTP</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="Operation">VerifyOTP</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="otpCode" />
</InputClaims>
</TechnicalProfile>