整合 Twilio 驗證應用程式與 Azure Active Directory B2C
在本逐步解說中,瞭解如何在 Azure Active Directory B2C (Azure AD B2C) 中整合範例在線付款應用程式與 Twilio 驗證 API。 藉由使用 Twilio 驗證應用程式,Azure AD B2C 客戶可以透過動態連結和強式客戶驗證來符合 PSD2 (付款服務指示詞 2) 交易需求。
必要條件
若要開始使用,您需要:
- Azure 訂用帳戶。 如果您沒有訂用帳戶,可以取得免費帳戶。
- 連結至 Azure 訂用帳戶的 Azure AD B2C 租使用者 。
- Twilio 的 試用帳戶 。
案例描述
下列元件組成 Twilio 解決方案:
.NET PSD2 示範 Web 應用程式,可讓您登入或註冊,並執行虛擬高風險交易。
Azure AD B2C 合併 登入和註冊原則。
使用
id_token_hint
與 Twilio 驗證 API 整合的 Azure AD B2C 原則。載入 OpenId 的 .NET Web 應用程式
.well-known
連線 端點允許驗證id_token_hint
。
步驟 | 描述: |
---|---|
1 | 用戶會起始登入或註冊 PSD2 Demo 應用程式。 用戶會透過 Azure AD B2C 合併登入和註冊原則進行驗證。 令牌會傳回至應用程式。 註冊時,用戶的電話號碼會使用SMS/電話進行驗證,並記錄在其 Azure AD B2C 帳戶上。 |
2 | 使用者起始高風險交易,例如 $50.00 的轉移。 原則標識符會評估使用者的目前存取令牌,以判斷使用者是否已透過 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 會藉由檢查應用程式 /.well-known OpenId 連線 端點來驗證id_token_hint的簽章。 驗證之後,它會從這個令牌擷取宣告,特別是 amount 和 payee 。 使用者會看到頁面,以透過簡訊驗證其行動電話號碼。 |
5 | 使用者要求透過SMS訊息驗證其電話號碼,而 Azure AD B2C 會向 Twilio 驗證 API 端點提出 REST API 要求。 它也會傳送交易 amount ,並 payee 作為 PSD2 程式的一部分,以產生一次性密碼 (OTP)。 Twilio 會將簡訊傳送給使用者的已註冊電話號碼。 |
6 | 使用者輸入在其SMS訊息中收到的OTP,並將其提交至 Azure AD B2C。 Azure AD B2C 會使用此 OTP 向 Twilio 的驗證 API 提出 API 要求,以確認 OTP 是否正確。 最後,令牌會發行給應用程式,且新的 PolicyId 表示使用者已加強其驗證。 |
使用 Twilio 上線
如本文所述,在 Twilio 購買 電話 號碼
流覽至 Twilio 控制台的 [驗證 API ],並依照 指示 建立服務並啟用 PSD2 選項。
設定 PSD2 示範應用程式
開啟 B2C-WebAPI-DotNet 解決方案,並將下列值取代為 web.config 中您自己的租使用者特定值:
<add key="ida:Tenant" value="yourtenant.onmicrosoft.com" /> <add key="ida:TenantId" value="d6f33888-0000-4c1f-9b50-1590f171fc70" /> <add key="ida:ClientId" value="6bd98cc8-0000-446a-a05e-b5716ef2651b" /> <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 應用程式也會裝載標識元令牌提示產生器和元數據端點。
建立您的簽署憑證,如此 範例描述中所述。
根據 web.config 中的憑證更新下列幾行:
<add key="ida:SigningCertThumbprint" value="4F39D6014818082CBB763E5BA5F230E545212E89" /> <add key="ida:SigningCertAlgorithm" value="RS256" />
將示範應用程式上傳至您選擇的裝載提供者。 此範例描述中提供 Azure App 服務 指引,包括上傳憑證的指示。
藉由新增相當於應用程式裝載 URL 的回復 URL,以更新您的 Azure AD B2C 應用程式註冊。
開啟原則檔案,並將的所有實例
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 租使用者的全域管理員身分登入 Azure 入口網站。
- 如果您有多個租使用者的存取權,請選取頂端功能表中的 [設定] 圖示,從 [目錄 + 訂用帳戶] 功能表切換至您的 Azure AD B2C 租使用者。
- 選擇 Azure 入口網站 左上角的 [所有服務],搜尋並選取 [Azure AD B2C]。
- 流覽至 Azure AD B2C>身分識別體驗架構>原則密鑰。
- 新增名稱 為 B2cRestTwilioClientId 的新密鑰。 選取 [手動],並提供 Twilio AccountSID 的值。
- 新增名稱 為 B2cRestTwilioClientSecret 的新密鑰。 選取 [手動],並提供 Twilio AUTH TOKEN 的值。
- 將所有原則檔案上傳至您的租使用者。
- 為註冊 SMS 文字自定義 GenerateOTPMessageEnrol 宣告轉換中的字串。
測試解決方案
- 流覽至您的應用程式並測試登入、註冊和傳送 Money 動作。
下一步
如需詳細資訊,請檢閱下列文章:
請參閱 GitHub for Twilio 整合程式代碼範例