你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
重要
自 2025 年 5 月 1 日起,Azure AD B2C 将不再可供新客户购买。 在我们的常见问题解答中了解详细信息。
本教程介绍如何将 Azure Active Directory B2C(Azure AD B2C)与 Datawiza 访问代理(DAP)集成,该代理支持单一登录(SSO)和精细访问控制,帮助 Azure AD B2C 保护本地旧版应用程序。 借助此解决方案,企业无需重写应用程序即可从旧版转换到 Azure AD B2C。
先决条件
若要开始,需要:
- Microsoft Entra 订阅
- 如果没有帐户,可以获取 Azure 免费帐户
- 一个已关联到你的 Azure 订阅的 Azure AD B2C 租户
-
Docker 是用于开发、传送和运行应用程序的开放平台,需要运行 DAB
- 应用程序可以在平台上运行,例如虚拟机和裸机
- 用于从旧标识系统过渡到 Azure AD B2C 的本地应用程序
- 在本教程中,DAB 部署在应用程序所在的同一服务器上
- 应用程序在 localhost:3001 上运行,DAP 代理将流量通过 localhost:9772 转发到应用程序。
- 应用程序流量首先到达 DAB,然后通过代理传输到应用程序。
方案说明
Datawiza 集成包括以下组件:
-
Azure AD B2C:用于验证用户凭据的授权服务器
- 经过身份验证的用户使用 Azure AD B2C 目录中存储的本地帐户访问本地应用程序
- Datawiza 访问代理 (DAP):通过 HTTP 标头将标识传递给应用程序的服务
- Datawiza 云管理控制台(DCMC):DAB 的管理控制台。 DCMC UI 和 RESTful API 可帮助管理 DAB 配置和访问控制策略
以下体系结构关系图显示了实现。
- 用户请求访问本地应用程序。 DAB 将请求代理给应用程序。
- DAP 检查用户身份验证状态。 如果没有会话令牌或无效令牌,用户将转到 Azure AD B2C 进行身份验证。
- Azure AD B2C 将用户请求发送到 Azure AD B2C 租户中 DAP 注册期间指定的终结点。
- DAP 评估访问策略,并计算转发到应用程序的 HTTP 标头中的属性值。 DAP 可能会调用标识提供者 (IdP) 来检索信息以设置标头值。 DAP 设置标头值,并将请求发送到应用程序。
- 用户已通过身份验证以可访问该应用程序。
通过 Datawiza 加入
若要将旧版本地应用与 Azure AD B2C 集成,请联系 Datawiza。
配置 Azure AD B2C 租户
请访问 docs.datawiza.com:
了解如何在 Azure AD B2C 租户中注册 Web 应用程序,以及如何配置注册和登录用户流。 有关详细信息,请参阅 Azure AD B2C。
在 Azure 门户中配置用户流。
注释
在 DCM 中设置 DAB 时,需要租户名称、用户流名称、客户端 ID 和客户端密码。
在 DCMC 中创建应用程序
在 DCMC 中,创建应用程序并为此应用程序生成密钥对
PROVISIONING_KEY
PROVISIONING_SECRET
。 请参阅 Datawiza Cloud Management Console。使用 Azure AD B2C 配置 IdP。 请参阅第 I 部分:Azure AD B2C 配置。
使用基于标头的应用程序运行 DAB
可以使用 Docker 或 Kubernetes 运行 DAP。 使用 Docker 映像让用户创建基于标头的示例应用程序。
了解详细信息:若要配置 DAP 和 SSO 集成,请参阅 使用应用部署 Datawiza 访问代理
提供了一个 docker 示例映像 docker-compose.yml file
。 登录到容器注册表,以便下载 DAP 映像和基于标头的应用程序。
-
version: '3' services: datawiza-access-broker: image: registry.gitlab.com/datawiza/access-broker container_name: datawiza-access-broker restart: always ports: - "9772:9772" environment: PROVISIONING_KEY: ############################# PROVISIONING_SECRET: ############################# header-based-app: image: registry.gitlab.com/datawiza/header-based-app container_name: ab-demo-header-app restart: always environment: CONNECTOR: B2C ports: - "3001:3001"
基于标头的应用程序拥有已启用 Azure AD B2C 的 SSO。
打开浏览器并输入
http://localhost:9772/
。此时会显示一个 Azure AD B2C 登录页。
将用户属性传递到基于标头的应用程序
DAB 从 IdP 获取用户属性,并使用标头或 Cookie 将其传递给应用程序。 配置用户属性后,将显示用户属性的绿色复选符号。
了解详细信息: 将用户属性 (如电子邮件地址、名字和姓氏)传递到基于标头的应用程序。
测试流
- 导航到本地应用程序 URL。
- DAP 将重定向到你在用户流中配置的页面。
- 从列表中选择 IdP。
- 在提示符下,输入凭据。 必要时包括 Microsoft Entra 多重身份验证令牌。
- 重定向到 Azure AD B2C,后者将应用程序请求转发到 DAP 重定向 URI。
- DAB 评估策略、计算标头并将用户发送到上游应用程序。
- 此时将显示请求的应用程序。