你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
为 Azure Active Directory B2C 配置 Jumio 的教程
本教程介绍如何将 Azure Active Directory B2C (Azure AD B2C) 与 Jumio 集成,Jumio 是一种 ID 验证服务,可实现实时自动 ID 验证,以帮助保护客户数据。
先决条件
若要开始,需要:
Azure 订阅
- 如果没有,可以获取一个 Azure 免费帐户
- 一个已关联到你的 Azure 订阅的 Azure AD B2C 租户
方案描述
Jumio 集成包括以下组件:
- Azure AD B2C - 验证用户凭据的授权服务器,也称为标识提供者 (IdP)
- Jumio - 验证用户 ID 详细信息
- 中间 REST API - 使用它实现 Azure AD B2C 和 Jumio 集成
- Azure Blob 存储 - 使用它获取 Azure AD B2C 策略的自定义 UI 文件
以下体系结构图体现了实施详情。
- 用户登录或注册并创建帐户。 Azure AD B2C 收集用户属性。
- Azure AD B2C 调用中间层 API 并传递用户属性。
- 中间层 API 将用户属性转换为 Jumio API 格式,并将属性发送到 Jumio。
- Jumio 处理属性,并将结果返回给中间层 API。
- 中间层 API 处理结果并将相关信息发送到 Azure AD B2C。
- Azure AD B2C 接收信息。 如果响应失败,将出现一条错误消息。 如果响应成功,则表明用户已通过身份验证且写入到目录中。
创建 Jumio 帐户
若要创建 Jumio 帐户,请转到 jumio.com 联系人页。
为 Azure AD B2C 配置 Jumio
创建 Jumio 帐户后,使用该帐户来配置 Azure AD B2C。
部署 API
在 samples/Jumio/API/Jumio.Api/ 中,将代码部署到 Azure 服务。 可以从 Visual Studio 发布代码。
注意
若要配置 Microsoft Entra ID,需要已部署服务 URL。
部署客户端证书
客户端证书帮助保护 Jumio API 调用。
使用以下 PowerShell 示例代码创建自签名证书:
$cert = New-SelfSignedCertificate -Type Custom -Subject "CN=Demo-SigningCertificate" -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3") -KeyUsage DigitalSignature -KeyAlgorithm RSA -KeyLength 2048 -NotAfter (Get-Date).AddYears(2) -CertStoreLocation "Cert:\CurrentUser\My" $cert.Thumbprint $pwdText = "Your password" $pwd = ConvertTo-SecureString -String $pwdText -Force -AsPlainText Export-PfxCertificate -Cert $Cert -FilePath "{your-local-path}\Demo-SigningCertificate.pfx" -Password $pwd.
证书会导出到为
{your-local-path}
指定的位置。若要将证书导入 Azure 应用服务,请参阅上传专用证书。
创建签名密钥/加密密钥
创建长度超过 64 个字符(仅包含字母和数字)的随机字符串。
例如:
C9CB44D98642A7062A0D39B94B6CDC1E54276F2E7CFFBF44288CEE73C08A8A65
使用下面的 PowerShell 脚本创建字符串:
-join ((0x30..0x39) + ( 0x41..0x5A) + ( 0x61..0x7A) + ( 65..90 ) | Get-Random -Count 64 | % {[char]$_})
配置 API
可以在 Azure 应用服务中配置应用程序设置,而无需将其签入存储库。 你需要向 REST API 提供以下设置:
应用程序设置 | Source | 注释 |
---|---|---|
JumioSettings:AuthUsername | Jumio 帐户配置 | 不适用 |
JumioSettings:AuthPassword | Jumio 帐户配置 | 不适用 |
AppSettings:SigningCertThumbprint | 创建的自签名证书指纹 | 不适用 |
AppSettings:IdTokenSigningKey | 使用 PowerShell 创建的签名密钥 | 不适用 |
AppSettings:IdTokenEncryptionKey | 使用 PowerShell 创建的加密密钥 | 不适用 |
AppSettings:IdTokenIssuer | JWT 令牌的颁发者(最好使用 GUID 值) | 不适用 |
AppSettings:IdTokenAudience | JWT 令牌的受众(最好使用 GUID 值) | 不适用 |
AppSettings:BaseRedirectUrl | Azure AD B2C 策略基 URL | https://{your-tenant-name}.b2clogin.com/{your-application-id} |
WEBSITE_LOAD_CERTIFICATES | 创建的自签名证书指纹 | 不适用 |
部署 UI
- 设置存储帐户中的 Blob 存储容器。
- 在 blob 容器中存储来自 /samples/Jumio/UI/ 的 UI 文件。
更新 UI 文件
- 在 UI 文件中,转到 /samples/Jumio/UI/ocean_blue/。
- 打开每个 HTML 文件。
- 找到
{your-ui-blob-container-url}
并将其替换为你的 Blob 容器的 URL。 - 找到
{your-intermediate-api-url}
并将其替换为中间 API 应用服务 URL。
注意
建议你在属性集合页中添加同意通知。 通知用户:信息将提交给第三方服务来进行身份验证。
配置 Azure AD B2C 策略
- 转到 /samples/Jumio/Policies/ 中的 Azure AD B2C 策略。
- 按照自定义策略初学者包中的说明下载 LocalAccounts 初学者包。
- 为 Azure AD B2C 租户配置策略。
注意
更新策略,使其与你的租户相关。
测试用户流
- 打开 Azure AD B2C 租户。
- 在“策略”下,选择“Identity Experience Framework”。
- 选择创建的“SignUpSignIn”。
- 选择“运行用户流”。
- 对于“应用程序”,选择已注册的应用(示例为 JWT)。
- 对于“回复 URL”,选择“重定向 URL”。
- 选择“运行用户流”。
- 完成注册流。
- 创建帐户。
- 创建用户属性后,将调用 Jumio。
提示
如果流未完成,请确认用户是否保存在目录中。