重要
2025 年 5 月 1 日より、Azure AD B2C は新規のお客様向けに購入できなくなります。 詳細については、FAQ を参照してください。
このチュートリアルでは、Azure Active Directory B2C (Azure AD B2C) のサンプル オンライン決済アプリを Twilio Verify API と統合する方法について説明します。 Twilio Verifyアプリを使用することで、Azure AD B2Cのお客様は、ダイナミックリンクと強力な顧客認証を通じてPSD2(Payment Services Directive 2)トランザクション要件に準拠できます。
[前提条件]
作業を開始するには、以下が必要です。
- Azure サブスクリプション。 サブスクリプションがない場合は、無料アカウントを取得できます。
- Azure サブスクリプションにリンクされている Azure AD B2C テナント。
- Twilioの 試用アカウント 。
シナリオの説明
Twilioソリューションは、次のコンポーネントで構成されています。
.NET PSD2 デモ Web アプリでは、サインインまたはサインアップし、ダミーの高リスク トランザクションを実行できます。
Azure AD B2C の サインインとサインアップのポリシーの組み合わせ。
Azure AD B2C ポリシーは、
id_token_hintを使用して Twilio Verify API と統合されています。.NET Web App:
.well-knownの検証を可能にするid_token_hintOpenIdConnectエンドポイントをホストします。
| ステップ | 説明 |
|---|---|
| 1 | ユーザーは、PSD2 デモ アプリへのサインインまたはサインアップを開始します。 ユーザーは、Azure AD B2C のサインインとサインアップの組み合わせポリシーを使用して認証されます。 トークンがアプリケーションに返されます。 サインアップ時に、ユーザーの電話番号は SMS/電話を使用して確認され、Azure AD B2C アカウントに記録されます。 |
| 2 | ユーザーが $50.00 の送金など、リスクの高い取引を開始します。 ユーザーの現在のアクセス トークンが PolicyId に対して評価され、ユーザーが Step-Up カスタム ポリシーを使用して既に認証されているかどうかを判断します。 |
| 3 | アプリケーションは、トランザクション値と受取人 ($50.00 と John Doe) を記録し、署名付きトークンを生成します。 このトークンは id_token_hint と呼ばれ、要求 amount:$500, payee:john doeが含まれています。
id_token_hintは、Twilio と統合されている Azure AD B2C カスタム ポリシーに要求と共に送信されます。 |
| 4 | Azure AD B2C は、OpenId Connect エンドポイント /.well-known アプリケーションを確認することで、id_token_hintの署名を確認します。 検証後、このトークンからクレーム、特にamountとpayeeを抽出します。 ユーザーには、SMSメッセージで携帯電話番号を確認するページが表示されます。 |
| 5 | ユーザーが SMS メッセージで電話番号の確認を要求すると、Azure AD B2C が Twilio Verify API エンドポイントに対して REST API 要求を行います。 また、PSD2 プロセスの一環として、トランザクションの amount と payee を送信して、ワンタイム パスコード (OTP) を生成します。 Twilioは、ユーザーの登録電話番号にSMSメッセージを送信します。 |
| 6 | ユーザーは、受信した OTP を SMS メッセージに入力し、Azure AD B2C に送信します。 Azure AD B2C は、この OTP を使用して Twilio の検証 API に API 要求を行い、OTP が正しいことを確認します。 最後に、トークンがアプリケーションに発行され、ユーザーが認証を強化したことを示す新しいPolicyIdが付けられます。 |
Twilio を使用してオンボードする
Twilioで 試用アカウント を取得します。
この記事で説明されているように、Twilioで電話番号を購入します
Twilioコンソールで Verify API に移動し、 指示 に従ってサービスを作成し、PSD2オプションを有効にします。
PSD2 デモ アプリを構成する
B2C-WebAPI-DotNet ソリューションを開き、次の値を、web.config内の独自のテナント固有の値に置き換えます。
<add key="ida:Tenant" value="yourtenant.onmicrosoft.com" /> <add key="ida:TenantId" value="aaaabbbb-0000-cccc-1111-dddd2222eeee" /> <add key="ida:ClientId" value="00001111-aaaa-2222-bbbb-3333cccc4444" /> <add key="ida:ClientSecret" value="secret" /> <add key="ida:AadInstance" value="https://yourtenant.b2clogin.com/tfp/{0}/{1}" /> <add key="ida:RedirectUri" value="https://your hosted psd2 demo app url/" />Web アプリは、ID トークン ヒント ジェネレーターとメタデータ エンドポイントもホストします。
この サンプルの説明で説明されているように、署名証明書を作成します。
web.configの証明書に基づいて、次の行を更新します。
<add key="ida:SigningCertThumbprint" value="AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00" /> <add key="ida:SigningCertAlgorithm" value="RS256" />
デモアプリケーションを選択したホスティングプロバイダーにアップロードします。 Azure App Service のガイダンスは、証明書のアップロード手順など、 このサンプルの説明に記載されています。
Azure AD B2C アプリケーションの登録を更新するには、アプリケーションがホストされている URL と同等の応答 URL を追加します。
ポリシー ファイルを開き、
contosoのすべてのインスタンスをテナント名に置き換えます。Twilio REST API技術プロファイル Custom-SMS-Enrollを見つけます。
ServiceURLを Twilio AccountSID で更新し、送信元電話番号を、購入した電話番号に更新します。Twilio REST APIの技術プロファイルである TwilioRestAPI-Verify-Step1 および TwilioRestAPI-Verify-Step2を見つけ、Twilio AccountSIDで
ServiceURLを更新します。
Azure AD B2C との統合
ポリシー ファイルを Azure AD B2C に追加します。
- Azure AD B2C テナントの B2C IEF ポリシー管理者として Azure portal にサインインします。
- 複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコンを選択し、[ディレクトリとサブスクリプション] メニューからお使いの Azure AD B2C テナントに切り替えます。
- Azure portal の左上隅にある [ すべてのサービス ] を選択し、 Azure AD B2C を検索して選択します。
- Azure AD B2Cの>Identity Experience Frameworkと>Policy キーに移動します。
- B2cRestTwilioClientId という名前の新しいキーを追加します。 [手動] を選択し、Twilio AccountSID の値を指定します。
- B2cRestTwilioClientSecret という名前の新しいキーを追加します。 [manual] を選択し、Twilio AUTH トークンの値を指定します。
- すべてのポリシー ファイルをテナントにアップロードします。
- サインアップ SMS テキストの GenerateOTPMessageEnrol 要求変換の文字列をカスタマイズします。
ソリューションをテストする
- アプリケーションを参照し、サインイン、サインアップ、および送金アクションをテストします。
次のステップ
詳細については、次の記事を参照してください。
Twilio 統合のコードサンプルについては、GitHub を参照してください