教程:使用 Microsoft Entra ID 和 Datawiza 配置安全混合访问

本教程介绍如何将 Microsoft Entra ID 与 Datawiza 集成,以实现混合访问Datawiza Access Proxy (DAP) 可扩展 Microsoft Entra ID,以启用单一登录 (SSO) 和提供访问控制来保护本地和云托管应用程序,例如 Oracle E-Business Suite、Microsoft IIS 和 SAP。 借助此解决方案,企业可以从 Symantec SiteMinder、NetIQ、Oracle 和 IBM 等旧式 Web 访问管理器 (WAM) 过渡到 Microsoft Entra ID,而无需重新编写应用程序。 企业可以使用 Datawiza 作为无代码或少代码解决方案,将新应用程序集成到 Microsoft Entra ID。 这种方法使企业能够实现其零信任策略,同时节省工程时间和降低成本。

了解详细信息:零信任安全性

采用 Microsoft Entra 身份验证体系结构的 Datawiza

Datawiza 集成包括以下组件:

  • Microsoft Entra ID - 标识和访问管理服务,可帮助用户登录以及访问内部和外部资源
  • Datawiza Access Proxy (DAP) - 此服务通过 HTTP 标头以透明方式将标识信息传递给应用程序
  • Datawiza Cloud Management Console (DCMC) - 提供 UI 和 RESTful API,供管理员管理 DAP 配置和访问控制策略

下图说明了混合环境中 Datawiza 的身份验证体系结构。

用户访问本地应用程序的身份验证过程的体系结构图。

  1. 用户请求访问本地或云托管应用程序。 DAP 将请求代理到该应用程序。
  2. DAP 检查用户身份验证状态。 如果没有会话令牌,或者会话令牌无效,DAP 会将用户请求发送到 Microsoft Entra ID 进行身份验证。
  3. Microsoft Entra ID 会将用户请求发送到 Microsoft Entra 租户中在注册 DAP 期间指定的终结点。
  4. DAP 会评估要包含在转发给应用程序的 HTTP 标头中的策略和属性值。 DAP 可能会调用标识提供者来检索信息以正确设置标头值。 DAP 会设置标头值并将请求发送到应用程序。
  5. 用户已经过身份验证并被授予访问权限。

先决条件

要开始,需要:

  • 一个 Azure 订阅
  • 链接到 Azure 订阅的 Microsoft Entra 租户
  • 需要有 Dockerdocker-compose 才能运行 DAP
    • 应用程序可以在平台上运行,例如虚拟机 (VM) 和裸机
  • 要从旧标识系统转换到 Microsoft Entra ID 的本地或云托管应用程序
    • 在本示例中,DAP 将部署在该应用程序所在的同一服务器上
    • 该应用程序在 localhost: 3001 上运行。 DAP 通过 localhost: 9772 将流量代理到应用程序
    • 传送到应用程序的流量先到达 DAP,然后通过代理到达应用程序

配置 Datawiza 云管理控制台

  1. 登录到 Datawiza 云管理控制台 (DCMC)。

  2. 在 DCMC 上创建应用程序,并为应用生成密钥对:PROVISIONING_KEYPROVISIONING_SECRET

  3. 要创建应用并生成密钥对,请按照 Datawiza 云管理控制台中的说明进行操作。

  4. 使用与 Microsoft Entra ID 的一键式集成在 Microsoft Entra ID 中注册应用程序。

    “配置 IdP”对话框中“自动生成器”功能的屏幕截图。

  5. 若要使用 Web 应用程序,请手动填充表单字段:“租户 ID”、“客户端 ID”和“客户端密码”。

    了解详细信息:若要创建 Web 应用程序并获取值,请访问 docs.datawiza.com 获取 Microsoft Entra ID 文档。

    “配置 IdP”对话框的屏幕截图,其中“自动生成器”已关闭。

  6. 使用 Docker 或 Kubernetes 来运行 DAP。 需要使用 docker 映像来创建基于标头的示例应用程序。

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
   restart: always
ports:
- "3001:3001"
  1. 登录到容器注册表。
  2. 在此重要步骤中下载 DAP 映像和基于标头的应用程序。
  3. 运行以下命令:docker-compose -f docker-compose.yml up
  4. 基于标头的应用程序拥有已启用 Microsoft Entra ID 的 SSO。
  5. 在浏览器中转到 http://localhost:9772/
  6. 此时会显示 Microsoft Entra 登录页。
  7. 将用户属性传递给基于标头的应用程序。 DAP 从 Microsoft Entra ID 获取用户属性,并通过标头或 cookie 将这些属性传递给应用程序。
  8. 若要向基于标头的应用程序传递用户属性(例如电子邮件地址、名字和姓氏),请参阅传递用户属性
  9. 若要确认配置的用户属性,请观察每个属性旁边的绿色复选标记。

主页的屏幕截图,其中包含 host、email、firstname 和 lastname 属性。

测试流

  1. 转到应用程序 URL。
  2. DAP 会将你重定向到 Microsoft Entra 登录页。
  3. 身份验证后,你将重定向到 DAP。
  4. DAP 会评估策略、计算标头,并将你发送到应用程序。
  5. 此时将显示请求的应用程序。

后续步骤