次の方法で共有


Twilio VerifyアプリとAzure Active Directory B2Cの統合

重要

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)トランザクション要件に準拠できます。

[前提条件]

作業を開始するには、以下が必要です。

シナリオの説明

Twilioソリューションは、次のコンポーネントで構成されています。

  • .NET PSD2 デモ Web アプリでは、サインインまたはサインアップし、ダミーの高リスク トランザクションを実行できます。

  • Azure AD B2C の サインインとサインアップのポリシーの組み合わせ。

  • Azure AD B2C ポリシーは、 id_token_hint を使用して Twilio Verify API と統合されています。

  • .NET Web App: .well-knownの検証を可能にするid_token_hint OpenIdConnectエンドポイントをホストします。

    Twilio フロー

ステップ 説明
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の署名を確認します。 検証後、このトークンからクレーム、特にamountpayeeを抽出します。 ユーザーには、SMSメッセージで携帯電話番号を確認するページが表示されます。
5 ユーザーが SMS メッセージで電話番号の確認を要求すると、Azure AD B2C が Twilio Verify API エンドポイントに対して REST API 要求を行います。 また、PSD2 プロセスの一環として、トランザクションの amountpayee を送信して、ワンタイム パスコード (OTP) を生成します。 Twilioは、ユーザーの登録電話番号にSMSメッセージを送信します。
6 ユーザーは、受信した OTP を SMS メッセージに入力し、Azure AD B2C に送信します。 Azure AD B2C は、この OTP を使用して Twilio の検証 API に API 要求を行い、OTP が正しいことを確認します。 最後に、トークンがアプリケーションに発行され、ユーザーが認証を強化したことを示す新しいPolicyIdが付けられます。

Twilio を使用してオンボードする

  1. Twilioで 試用アカウント を取得します。

  2. この記事で説明されているように、Twilioで電話番号を購入します

  3. Twilioコンソールで Verify API に移動し、 指示 に従ってサービスを作成し、PSD2オプションを有効にします。

PSD2 デモ アプリを構成する

  1. 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/" />
    
  2. Web アプリは、ID トークン ヒント ジェネレーターとメタデータ エンドポイントもホストします。

    • この サンプルの説明で説明されているように、署名証明書を作成します。

    • web.configの証明書に基づいて、次の行を更新します。

      <add key="ida:SigningCertThumbprint" value="AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00" />
      <add key="ida:SigningCertAlgorithm" value="RS256" />
      
  3. デモアプリケーションを選択したホスティングプロバイダーにアップロードします。 Azure App Service のガイダンスは、証明書のアップロード手順など、 このサンプルの説明に記載されています。

  4. Azure AD B2C アプリケーションの登録を更新するには、アプリケーションがホストされている URL と同等の応答 URL を追加します。

  5. ポリシー ファイルを開き、contoso のすべてのインスタンスをテナント名に置き換えます。

  6. Twilio REST API技術プロファイル Custom-SMS-Enrollを見つけます。 ServiceURL を Twilio AccountSID で更新し、送信元電話番号を、購入した電話番号に更新します。

  7. Twilio REST APIの技術プロファイルである TwilioRestAPI-Verify-Step1 および TwilioRestAPI-Verify-Step2を見つけ、Twilio AccountSIDで ServiceURL を更新します。

Azure AD B2C との統合

ポリシー ファイルを Azure AD B2C に追加します。

  1. Azure AD B2C テナントの B2C IEF ポリシー管理者として Azure portal にサインインします。
  2. 複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコンを選択し、[ディレクトリとサブスクリプション] メニューからお使いの Azure AD B2C テナントに切り替えます。
  3. Azure portal の左上隅にある [ すべてのサービス ] を選択し、 Azure AD B2C を検索して選択します。
  4. Azure AD B2Cの>Identity Experience Frameworkと>Policy キーに移動します。
  5. B2cRestTwilioClientId という名前の新しいキーを追加します。 [手動] を選択し、Twilio AccountSID の値を指定します。
  6. B2cRestTwilioClientSecret という名前の新しいキーを追加します。 [manual] を選択し、Twilio AUTH トークンの値を指定します。
  7. すべてのポリシー ファイルをテナントにアップロードします。
  8. サインアップ SMS テキストの GenerateOTPMessageEnrol 要求変換の文字列をカスタマイズします。

ソリューションをテストする

  • アプリケーションを参照し、サインイン、サインアップ、および送金アクションをテストします。

次のステップ

詳細については、次の記事を参照してください。