你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
教程:为 Azure Active Directory B2C 配置 Datawiza 以提供安全的混合访问权限
本教程介绍如何将 Azure Active Directory B2C (Azure AD B2C) 与 Datawiza Access Proxy 集成,这可以实现单一登录 (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 Access Proxy (DAP) - 该服务通过 HTTP 头将标识传递给应用程序
- Datawiza Cloud Management Console (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 门户中配置用户流。
注意
在 DCMC 中设置 DAB 时,需要使用租户名称、用户流名称、客户端 ID 和客户端密码。
在 DCMC 中创建应用程序
在 DCMC 中创建应用程序并为此应用程序生成密钥对
PROVISIONING_KEY
和PROVISIONING_SECRET
。 请参阅 Datawiza 云管理控制台。使用 Azure AD B2C 配置 IdP。 请参阅第 I 部分:Azure AD B2C 配置。
使用基于标头的应用程序运行 DAB
可以使用 Docker 或 Kubernetes 来运行 DAP。 用户要使用 docker 映像才能创建基于标头的示例应用程序。
详细了解:若要配置 DAP 和 SSO 集成,请参阅为你的应用部署 Datawiza Access Proxy
提供示例 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 将评估策略,计算标头,并将用户发送到上游应用程序。
- 此时将显示请求的应用程序。