你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Azure Active Directory B2C 配置 Nevis 进行无密码身份验证的教程

重要

自 2025 年 5 月 1 日起,Azure AD B2C 将不再可供新客户购买。 在我们的常见问题解答中了解详细信息

在本教程中,了解如何使用 Nevis Access 应用在 Azure Active Directory B2C(Azure AD B2C)中启用无密码身份验证,以启用客户身份验证并符合支付服务指令 2(PSD2)交易要求。 PSD2 是欧盟(EU)指令,由欧盟委员会(总局内部市场)管理,用于监管整个欧盟和欧洲经济区(OEC)的支付服务和支付服务提供商。

先决条件

若要开始,需要:

注释

若要将 Nevis 集成到注册策略流中,请将 Azure AD B2C 环境配置为使用自定义策略。
请参阅 教程:在 Azure Active Directory B2C 中创建用户流和自定义策略

方案说明

为实现无密码身份验证,将品牌 Access 应用添加到您的后端应用程序中。 以下组件构成解决方案:

  • Azure AD B2C 租户,其中登录和注册策略已合并到后端
  • 用于增强 Azure AD B2C 的 Nevis 实例及其 REST API
  • 品牌化的 Access 应用

此图显示了实现。

示意图显示使用 Azure AD B2C 和 Nevis 的密码登录大致流程。

  1. 用户尝试使用 Azure AD B2C 策略登录或注册应用程序。
  2. 注册期间,Access 使用 QR 码注册到用户设备。 私钥在用户设备上生成,用于对用户请求进行签名。
  3. Azure AD B2C 使用 RESTful 技术配置文件来启动使用 Nevis 解决方案的登录。
  4. 登录请求以推送消息、QR 码或深层链接的形式转到 Access。
  5. 用户通过生物识别来批准此登录尝试。 消息将转到 Nevis,它使用存储的公钥验证登录。
  6. Azure AD B2C 向 Nevis 发送请求以确认登录已完成。
  7. 通过 Azure AD B2C 成功或失败消息授予或拒绝用户对应用程序的访问权限。

集成 Azure AD B2C 租户

申请 Nevis 帐户

  1. 转到 nevis.net 前往 Nevis + Microsoft Azure AD B2C
  2. 使用表单请求帐户。
  3. 收到两封电子邮件:
  • 管理帐户通知
  • 移动应用邀请

将 Azure AD B2C 租户添加到 Nevis 帐户

  1. 从管理帐户试用电子邮件中,复制管理密钥。
  2. 在浏览器中,打开 Nevis 管理控制台
  3. 使用管理密钥登录到管理控制台。
  4. 选择 “添加实例”。
  5. 选择创建的实例。
  6. 在侧导航中,选择 “自定义集成”。
  7. 选择 “添加自定义集成”。
  8. 对于 集成名称,请输入 Azure AD B2C 租户名称。
  9. 对于 URL/域,请输入 https://yourtenant.onmicrosoft.com
  10. 选择“下一步”
  11. 选择“完成”。

注释

稍后您将需要 Nevis 访问令牌。

在手机上安装 Nevis Access

  1. 在 Nevis 移动应用邀请电子邮件中,打开“测试外部测试版应用”邀请
  2. 安装应用。

将 Azure AD B2C 与 Nevis 集成

  1. 登录到 Azure 门户
  2. 切换到 Azure AD B2C 租户。 注意:Azure AD B2C 租户通常位于单独租户中。
  3. 在菜单中,选择“标识体验框架”(IEF)。
  4. 选择 策略密钥
  5. 选择 并添加
  6. 创建新密钥。
  7. 对于 “选项”,请选择“ 手动”。
  8. 对于 “名称”,请选择 “AuthCloudAccessToken”。
  9. 对于 机密,请粘贴存储的 Nevis 访问令牌
  10. 对于 密钥使用情况,请选择“ 加密”。
  11. 选择 创建

配置 nevis.html 文件并将其上传到 Azure Blob 存储

  1. 在标识环境(IDE)中,转到 /master/samples/Nevis/policy 文件夹。
  2. /samples/Nevis/policy/ 中nevis.html 打开 nevis.html 文件。
  3. authentication_cloud_url 替换为 Nevis 管理控制台 URL https://<instance_id>.mauth.nevis.cloud
  4. 选择“保存”
  5. 创建 Azure Blob 存储帐户
  6. nevis.html 文件上传到 Azure Blob 存储。
  7. 配置 CORS
  8. 为文件启用跨域资源共享(CORS)。
  9. 在列表中,选择 nevis.html 文件。
  10. URL 旁边的“概述”选项卡中,选择复制链接图标。
  11. 在新浏览器选项卡中打开链接,确认显示灰色框。

注释

稍后将使用此 blob 链接。

自定义 TrustFrameworkBase.xml

  1. 在 IDE 中,转到 /samples/Nevis/policy 文件夹。
  2. 打开 TrustFrameworkBase.xml
  3. TenantId 中将 你的租户 替换为 Azure 租户帐户名称。
  4. 你的租户 替换为 PublicPolicyURI 中的 Azure 租户帐户名称。
  5. 将所有 authentication_cloud_url 实例替换为 Nevis 管理控制台 URL。
  6. 选择“保存”

自定义 TrustFrameworkExtensions.xml

  1. 在 IDE 中,转到 /samples/Nevis/policy 文件夹。
  2. 打开 TrustFrameworkExtensions.xml
  3. TenantId 中将 你的租户 替换为 Azure 租户帐户名称。
  4. 你的租户 替换为 PublicPolicyURI 中的 Azure 租户帐户名称。
  5. BasePolicyTenantId 下,将 你的租户名称 替换为你的 Azure 租户账户名称。
  6. BuildingBlocks 下,将 LoadUri 替换为 nevis.html Blob 存储帐户中的 Blob 链接 URL。
  7. 选择“保存”

自定义 SignUpOrSignin.xml

  1. 在 IDE 中,转到 /samples/Nevis/policy 文件夹。
  2. 打开 SignUpOrSignin.xml 文件。
  3. TenantId 中将 你的租户 替换为 Azure 租户帐户名称。
  4. 将“yourtenant”替换为“PublicPolicyUri”中的 Azure 租户帐户名
  5. BasePolicyTenantId 中,将 您的租户 替换为您的 Azure 租户帐户名称。
  6. 选择“保存”

将自定义策略上传到 Azure AD B2C

  1. 在 Azure 门户中,打开 Azure AD B2C 租户
  2. 选择“Identity Experience Framework”。
  3. 选择“上传自定义策略”
  4. 选择您修改过的 TrustFrameworkBase.xml 文件。
  5. 选中“覆盖自定义策略(若已有)”复选框
  6. 选择“上传”。
  7. TrustFrameworkExtensions.xml重复步骤 5 和 6 。
  8. SignUpOrSignin.xml重复步骤 5 和 6 。

测试用户流

测试帐户创建和访问设置

  1. 在 Azure 门户中,打开 Azure AD B2C 租户
  2. 选择“Identity Experience Framework”。
  3. 向下滚动到 自定义策略 并选择 B2C_1A_signup_signin
  4. 选择“立即运行”。
  5. 在窗口中,选择“ 立即注册”。
  6. 添加电子邮件地址。
  7. 选择“ 发送验证码”。
  8. 从电子邮件复制验证码。
  9. 选择“ 验证”。
  10. 在表单中填入新密码和显示名称。
  11. 选择 创建
  12. 此时会显示 QR 码扫描页。
  13. 在手机上,打开 Nevis Access 应用
  14. 选择 人脸 ID
  15. 此时会显示 验证器注册成功 屏幕。
  16. 选择继续
  17. 在手机上,使用人脸进行身份验证。
  18. jwt.ms 欢迎页面会出现,显示已解码的令牌详细信息。

测试无密码登录

  1. 在“Identity Experience Framework”下,选择“B2C_1A_signup_signin”
  2. 选择“立即运行”。
  3. 在窗口中,选择 “无密码身份验证”。
  4. 输入电子邮件地址。
  5. 选择继续
  6. 在手机上的“通知”中,选择 “Nevis Access 应用通知”。
  7. 使用人脸进行身份验证。
  8. jwt.ms 欢迎页随令牌一起显示。

后续步骤