你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
为 Azure Active Directory B2C 配置 Nevis 以进行无密码身份验证的教程
本教程介绍如何使用 Nevis Access 应用在 Azure Active Directory B2C (Azure AD B2C) 中启用无密码身份验证,以启用客户身份验证并遵守支付服务指令 2 (PSD2) 交易要求。 PSD2 是欧洲联盟(欧盟)指令,由欧洲委员会(内部市场总局)管理,旨在监管整个欧盟和欧洲经济区 (EEA) 的支付服务和支付服务提供商。
先决条件
若要开始,需要:
- Nevis 演示帐户
- 转到 nevis.net for Nevis + Microsoft Azure AD B2C 以请求帐户
Azure 订阅
- 如果没有,可以获取一个 Azure 免费帐户
- 一个已关联到你的 Azure 订阅的 Azure AD B2C 租户
注意
若要将 Nevis 集成到注册策略流中,请将 Azure AD B2C 环境配置为使用自定义策略。
请参阅教程:在 Azure Active Directory B2C 中创建用户流和自定义策略。
方案描述
将品牌化的访问应用添加到后端应用程序以进行无密码身份验证。 以下组件构成了解决方案:
- Azure AD B2C 租户,其中登录和注册策略已合并到后端
- 用于增强 Azure AD B2C 的 Nevis 实例及其 REST API
- 品牌化的 Access 应用
此图显示了实现流程。
- 用户尝试使用 Azure AD B2C 策略登录或注册应用程序。
- 在注册过程中,会使用 QR 码将 Access 注册到用户设备。 随后会在用户设备上生成私钥,并将该私钥用于对用户请求进行签名。
- Azure AD B2C 使用 RESTful 技术配置文件来启动使用 Nevis 解决方案的登录。
- 登录请求以推送消息、QR 码或深层链接的形式进入 Access。
- 该用户同意通过其生物特征尝试登录。 一条消息进入 Nevis,该消息使用存储的公钥来验证登录。
- Azure AD B2C 向 Nevis 发送请求,以确认登录已完成。
- 向用户授予或拒绝对应用程序的访问权限,并显示 Azure AD B2C 成功或失败消息。
集成 Azure AD B2C 租户
请求 Nevis 帐户
- 转到 nevis.net for Nevis + Microsoft Azure AD B2C。
- 使用表单请求帐户。
- 收到两封电子邮件:
- 管理帐户通知
- 移动应用邀请
将 Azure AD B2C 租户添加到 Nevis 帐户
- 从管理帐户试用电子邮件中,复制管理密钥。
- 在浏览器中,打开 https://console.nevis.cloud/。
- 使用管理密钥登录到管理控制台。
- 选择“添加实例”。
- 选择创建的实例。
- 在侧面导航中,选择“自定义集成”。
- 选择“添加自定义集成”。
- 对于集成名称,输入你的 Azure AD B2C 租户名称。
- 对于“URL/域”,输入
https://yourtenant.onmicrosoft.com
。 - 选择“下一步”
- 选择“完成”。
注意
稍后需要使用 Nevis 访问令牌。
在手机上安装 Nevis Access
- 在 Nevis 移动应用邀请电子邮件中,打开“测试外部测试版应用”邀请。
- 安装应用。
将 Azure AD B2C 与 Nevis 集成
- 登录到 Azure 门户。
- 切换到 Azure AD B2C 租户。 注意:Azure AD B2C 租户通常位于单独租户中。
- 在菜单中,选择“Identity Experience Framework (IEF)”。
- 选择“策略密钥”。
- 选择 添加 。
- 创建新密钥。
- 对于“选项”,请选择“手动” 。
- 对于“名称”,选择“AuthCloudAccessToken”。
- 对于“机密”,粘贴存储的“Nevis 访问令牌”。
- 对于“密钥用法”,请选择“加密”。
- 选择“创建”。
配置 nevis.html 并将其上传到 Azure Blob 存储
- 在标识环境中 (IDE),转到 /master/samples/Nevis/policy 文件夹。
- 在 /samples/Nevis/policy/nevis.html 中打开 nevis.html 文件。
- 将“authentication_cloud_url”替换为 Nevis 管理控制台 URL
https://<instance_id>.mauth.nevis.cloud
。 - 选择“保存”。
- 创建 Azure Blob 存储帐户
- 将 nevis.html 文件上传到 Azure Blob 存储。
- 配置 CORS。
- 为文件启用跨域资源共享 (CORS)。
- 在列表中,选择 nevis.html 文件。
- 在“概述”选项卡的“URL”旁边,选择“复制链接”图标 。
- 在新的浏览器选项卡中打开该链接,确保显示灰色框。
注意
稍后将使用此 blob 链接。
自定义 TrustFrameworkBase.xml
- 在 IDE 中,转到 /samples/Nevis/policy 文件夹。
- 打开 TrustFrameworkBase.xml。
- 将“yourtenant”替换为“TenantId”中的 Azure 租户帐户名。
- 将“yourtenant”替换为“PublicPolicyURI”中的 Azure 租户帐户名。
- 将所有“authentication_cloud_url”实例均替换为 Nevis 管理控制台的 URL。
- 选择“保存”。
自定义 TrustFrameworkExtensions.xml
- 在 IDE 中,转到 /samples/Nevis/policy 文件夹。
- 打开 TrustFrameworkExtensions.xml。
- 将“yourtenant”替换为“TenantId”中的 Azure 租户帐户名。
- 将“yourtenant”替换为“PublicPolicyURI”中的 Azure 租户帐户名。
- 在“BasePolicy”下的“TenantId”中,将“yourtenant”替换为 Azure 租户帐户名。
- 在“BuildingBlocks”下,将“LoadUri”替换为 blob 存储帐户中“nevis.html”blob 链接 URL。
- 选择“保存”。
自定义 SignUpOrSignin.xml
- 在 IDE 中,转到 /samples/Nevis/policy 文件夹。
- 打开 SignUpOrSignin.xml 文件。
- 将“yourtenant”替换为“TenantId”中的 Azure 租户帐户名。
- 将“yourtenant”替换为“PublicPolicyUri”中的 Azure 租户帐户名。
- 在“BasePolicy”下的“TenantId”中,将“yourtenant”替换为 Azure 租户帐户名。
- 选择“保存”。
将自定义策略上传到 Azure AD B2C
- 在 Azure 门户中,打开你的 Azure AD B2C 租户。
- 选择“标识体验框架”。
- 选择“上传自定义策略”。
- 选择已修改的“TrustFrameworkBase.xml”文件。
- 选中“覆盖自定义策略(若已有)”复选框。
- 选择“上传”。
- 对 TrustFrameworkExtensions.xml 重复步骤 5 和 6。
- 对 SignUpOrSignin.xml 重复步骤 5 和 6。
测试用户流
测试帐户创建和 Access 设置
- 在 Azure 门户中,打开你的 Azure AD B2C 租户。
- 选择“标识体验框架”。
- 向下滚动到“自定义策略”,然后选择“B2C_1A_signup_signin”。
- 选择“立即运行”。
- 在窗口中,选择“立即注册”。
- 添加电子邮件地址。
- 选择“发送验证码”。
- 复制电子邮件中的验证码。
- 选择“验证” 。
- 在表单中填入新密码和显示名称。
- 选择“创建”。
- 此时会出现 QR 码扫描页面。
- 在手机上,打开“Nevis Access 应用”。
- 选择“Face ID”。
- 此时会出现“Authenticator 注册成功”屏幕。
- 选择“继续”。
- 在手机上,通过你的人脸进行身份验证。
- 此时会显示 jwt.ms 欢迎 页,其中包含已解码的令牌详细信息。
测试无密码登录
- 在“Identity Experience Framework”下,选择“B2C_1A_signup_signin” 。
- 选择“立即运行”。
- 在窗口中,选择“无密码身份验证”。
- 输入电子邮件地址。
- 选择“继续”。
- 在手机上的“通知”中,选择“Nevis Access 应用通知”。
- 通过人脸进行身份验证。
- jwt.ms 欢迎页随令牌一起显示。