你当前正在访问 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 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 配置和访问控制策略

以下体系结构图体现了实施详情。

Azure AD B2C 与 Datawiza 集成后的体系结构的示意图,此集成便于安全访问混合应用程序。

  1. 用户请求访问本地应用程序。 DAB 将请求代理到该应用程序。
  2. DAP 检查用户身份验证状态。 如果没有会话令牌或令牌无效,用户将转到 Azure AD B2C 进行身份验证。
  3. Azure AD B2C 会将用户请求发送到 Azure AD B2C 租户中在注册 DAP 期间指定的终结点。
  4. DAP 会评估访问策略,并计算转发到应用程序的 HTTP 标头中的属性值。 DAP 可能会调用标识提供者 (IdP) 来检索信息以设置标头值。 DAP 会设置标头值并将请求发送到该应用程序。
  5. 用户经过身份验证,具有对该应用程序的访问权限。

通过 Datawiza 加入

若要将旧的本地应用与 Azure AD B2C 集成,请联系 Datawiza

配置 Azure AD B2C 租户

转到 docs.datawiza.com,执行以下操作:

  1. 了解如何在 Azure AD B2C 租户中注册 Web 应用程序,以及如何配置注册和登录用户流。 有关详细信息,请参阅 Azure AD B2C

  2. 在 Azure 门户中配置用户流

注意

在 DCMC 中设置 DAB 时,需要使用租户名称、用户流名称、客户端 ID 和客户端密码。

在 DCMC 中创建应用程序

  1. 在 DCMC 中创建应用程序并为此应用程序生成密钥对 PROVISIONING_KEYPROVISIONING_SECRET。 请参阅 Datawiza 云管理控制台

  2. 使用 Azure AD B2C 配置 IdP。 请参阅第 I 部分:Azure AD B2C 配置

    IdP 配置值的屏幕截图。

使用基于标头的应用程序运行 DAB

可以使用 Docker 或 Kubernetes 来运行 DAP。 用户要使用 docker 映像才能创建基于标头的示例应用程序。

详细了解:若要配置 DAP 和 SSO 集成,请参阅为你的应用部署 Datawiza Access Proxy

提供示例 docker 映像 docker-compose.yml file。 登录到容器注册表,以便下载 DAP 映像和基于标头的应用程序。

  1. 使用应用部署 Datawiza 访问代理

    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"
    
  2. 基于标头的应用程序拥有已启用 Azure AD B2C 的 SSO。

  3. 打开浏览器并输入 http://localhost:9772/

  4. 此时显示 Azure AD B2C 登录页面。

将用户属性传递给基于标头的应用程序

DAB 从 IdP 获取用户属性,并使用标头或 Cookie 将其传递给应用程序。 配置用户属性后,将显示用户属性的绿色复选符号。

用户属性的屏幕截图。

详细了解如何向基于标头的应用程序传递用户属性(例如电子邮件地址、名字和姓氏)。

测试流

  1. 导航到本地应用程序 URL。
  2. DAP 会重定向到在用户流中配置的页面。
  3. 从列表中选择 IdP。
  4. 在提示符下,输入凭据。 必要时包括 Microsoft Entra 多重身份验证令牌。
  5. 你会重定向到 Azure AD B2C,这样就会将应用程序请求转发到 DAP 重定向 URI。
  6. DAB 将评估策略,计算标头,并将用户发送到上游应用程序。
  7. 此时将显示请求的应用程序。

后续步骤