教學課程:使用 Datawiza 設定 Azure Active Directory B2C 以提供安全的混合式存取

在本教學課程中,瞭解如何整合 Azure Active Directory B2C (Azure AD B2C) 與 Datawiza Access Proxy (DAP) ,以啟用單一登入 (SSO) 和細微存取控制,協助 Azure AD B2C 保護內部部署繼承應用程式。 透過此解決方案,企業可以在不重寫應用程式的情況下,從舊版轉換至 Azure AD B2C。

必要條件

若要開始,您需要:

  • Microsoft Entra訂用帳戶
  • 連結至 Azure 訂用帳戶的 Azure AD B2C 租用戶
  • 需要 Docker才能執行 DAB,這是開發、運送和執行應用程式的開放平臺
    • 您的應用程式可以在虛擬機器和裸機等平臺上執行
  • 從舊版身分識別系統轉換至 Azure AD B2C 的內部部署應用程式
    • 在本教學課程中,DAB 會部署在與應用程式相同的伺服器上
    • 應用程式會在 localhost 上執行:3001 和 DAP Proxy 透過 localhost 對應用程式的流量:9772
    • 應用程式流量會先到達 DAB,然後再將 Proxy 處理至應用程式

案例描述

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 會將要求 Proxy 處理至應用程式。
  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 入口網站中設定使用者流程

注意

當您在 DCM 中設定 DAB 時,您需要租使用者名稱、使用者流程名稱、用戶端識別碼和用戶端密碼。

在 DCMC 中建立應用程式

  1. 在 DCMC 中,建立應用程式,並為此應用程式產生 和 PROVISIONING_SECRETPROVISIONING_KEY 金鑰組。 請參閱 Datawiza Cloud Management Console

  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 存取 Proxy

    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. 要求的應用程式隨即出現。

下一步