你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
将 Twilio Verify 应用与 Azure Active Directory B2C 集成
在本次演练中,了解如何将 Azure Active Directory B2C (Azure AD B2C) 中的示例在线支付应用与 Twilio Verify API 集成。 通过使用 Twilio Verify 应用,Azure AD B2C 客户可以通过动态链接和强大的客户身份验证满足 PSD2(付款服务指令 2)事务要求。
先决条件
若要开始,需要:
- Azure 订阅。 如果没有订阅,可以获取一个免费帐户。
- 一个已链接到 Azure 订阅的 Azure AD B2C 租户。
- Twilio 上的试用帐户。
方案描述
以下组件组成了 Twilio 解决方案:
.NET PSD2 演示 Web 应用,提供登录或注册功能,并执行一个虚拟高风险事务。
Azure AD B2C 合并的登录和注册策略。
使用
id_token_hint
与 Twilio Verify API 集成的 Azure AD B2C 策略。.NET Web 应用,该应用承载
.well-known
OpenIdConnect 终结点以允许验证id_token_hint
。
步骤 | 说明 |
---|---|
1 | 用户启动登录或注册到 PSD2 演示应用。 用户通过 Azure AD B2C 合并的登录和注册策略进行身份验证。 令牌返回到应用程序。 注册时,用户的电话号码使用短信/电话进行验证,并记录在其 Azure AD B2C 帐户上。 |
2 | 用户启动高风险事务,例如转账 $50.00。 对用户当前访问令牌的 PolicyId 进行评估,以确定用户是否已通过“升级”自定义策略进行身份验证。 |
3 | 应用程序记录交易值 $50.00 和收款人 John Doe,并生成已签名的令牌。 此令牌称为 id_token_hint ,并包含声明 amount:$500, payee:john doe 。 id_token_hint 与请求一起发送到 Azure AD B2C 自定义策略,该策略与 Twilio 集成。 |
4 | Azure AD B2C 通过检查应用程序 /.well-known OpenId Connect 终结点来验证 id_token_hint 的签名。 验证后,将提取此令牌中的声明,尤其是 amount 和 payee 。 用户将看到一个页面,以通过短信验证其移动电话号码。 |
5 | 用户请求通过短信验证其电话号码,Azure AD B2C 则向 Twilio 验证 API 终结点发出 REST API 请求。 它还会发送事务 amount 和 payee 作为 PSD2 过程的一部分,以生成一次性密码 (OTP)。 Twilio 将向用户已注册的电话号码发送一条短信。 |
6 | 用户输入在其短信中收到的 OTP,并将其提交到 Azure AD B2C。 Azure AD B2C 使用此 OTP 向 Twilio 的验证 API 发出 API 请求,以验证 OTP 是否正确。 最后,向应用程序颁发令牌,其中包含的新 PolicyId 表明用户已升级身份验证。 |
加入 Twilio
配置 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 应用还承载 ID 令牌提示生成器和元数据终结点。
按照此示例说明中所述创建签名证书。
根据 web.config 中的证书更新以下行:
<add key="ida:SigningCertThumbprint" value="4F39D6014818082CBB763E5BA5F230E545212E89" /> <add key="ida:SigningCertAlgorithm" value="RS256" />
将演示应用程序上传到所选的托管提供程序。 本示例说明中提供了 Azure 应用服务指南,其中包括证书上传说明。
通过添加与托管应用程序的 URL 等效的回复 URL 来更新 Azure AD B2C 应用程序注册。
打开策略文件,将
contoso
的所有实例替换为你的租户名。查找 Twilio REST API 技术配置文件“Custom-SMS-Enroll”。 使用你的 Twilio AccountSID 更新
ServiceURL
,并将致电人号码更新为你购买的电话号码。查找 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”>“Identity Experience Framework”>“策略密钥”。
- 添加名为“B2cRestTwilioClientId”的新密钥。 选择“手动”,并提供 Twilio AccountSID 的值。
- 添加名为“B2cRestTwilioClientSecret”的新密钥。 选择“手动”,并提供 Twilio 身份验证令牌的值。
- 将所有策略文件上传到租户。
- 为你的注册短信自定义 GenerateOTPMessageEnrol 声明转换中的字符串。
测试解决方案
- 浏览到应用程序,并测试登录、注册和汇款操作。
后续步骤
有关更多信息,请参阅以下文章:
有关 Twilio 集成代码示例,请参阅 GitHub