共用方式為


將內部部署 Active Directory 同盟服務延伸至 Azure

Azure Load Balancer
Microsoft Entra
Microsoft Entra ID

此參考架構會實作安全的混合式網路,以將內部部署網路延伸至 Azure,並使用 Active Directory 同盟服務 (AD FS) 來執行 Azure 中執行元件的同盟驗證和授權。

Architecture

此圖顯示使用AD FS的安全混合式網路架構範例。

下載此架構的 Visio 檔案

Workflow

下列工作流程對應至上圖:

  • Active Directory Domain Services (AD DS) 子網: AD DS 伺服器會包含在自己的子網中,其中網路安全組 (NSG) 規則可作為防火牆。

  • AD DS 伺服器: 在 Azure 中以虛擬機 (VM) 身分執行的域控制器。 這些伺服器提供網域內本機身分識別的驗證。

  • AD FS 子網: AD FS 伺服器位於自己的子網內,並使用 NSG 規則作為防火牆。

  • AD FS 伺服器: AD FS 伺服器提供同盟授權和驗證。 在此架構中,他們會執行下列工作:

    • 接收安全性令牌,其中包含合作夥伴同盟伺服器代表合作夥伴使用者所進行的宣告。 AD FS 會先驗證令牌是否有效,再將宣告傳遞至在 Azure 中執行的 Web 應用程式,以授權要求。

      在 Azure 中執行的應用程式稱為 信賴憑證者。 合作夥伴同盟伺服器必須發出 Web 應用程式瞭解的宣告。 合作夥伴聯合伺服器稱為 帳戶合作夥伴 ,因為它們代表合作夥伴組織中經過驗證的帳戶提交存取要求。 AD FS 伺服器稱為 資源合作夥伴 ,因為它們提供資源 (Web 應用程式) 的存取權。

    • 使用 AD DS 和 Active Directory 裝置註冊服務 (DRS) 驗證和授權來自執行網頁瀏覽器或裝置之外部使用者的連入要求,這些要求需要存取 Web 應用程式。

    AD FS 伺服器會設定為透過 Azure 負載平衡器存取的伺服器陣列。 此實作可改善可用性和延展性。 AD FS 伺服器不會直接公開至因特網。 所有因特網流量都會透過 AD FS Web 應用程式 Proxy (WAP) 伺服器和非軍事區 (DMZ) 進行篩選,也稱為 周邊網路

    如需詳細資訊,請參閱 AD FS概觀

  • AD FS Proxy 子網: AD FS Proxy 伺服器可以包含在自己的子網內,並使用NSG規則來保護。 此子網中的伺服器會透過一組網路虛擬設備向因特網公開,以提供 Azure 虛擬網路與因特網之間的防火牆。

  • AD FS WAP 伺服器: 這些 VM 可作為 AD FS 伺服器,用於來自合作夥伴組織和外部裝置的連入要求。 WAP 伺服器會作為篩選條件,防止 AD FS 伺服器從因特網直接存取。 如同AD FS 伺服器,使用負載平衡在伺服器陣列中部署 WAP 伺服器可提供比部署獨立伺服器集合更高的可用性和延展性。 如需詳細資訊,請參閱 安裝和設定 WAP 伺服器

  • 合作夥伴組織: 合作夥伴組織會執行 Web 應用程式,要求存取在 Azure 中執行的 Web 應用程式。 合作夥伴組織的同盟伺服器會在本機驗證要求,並將包含宣告的安全性令牌提交至 Azure 中執行的 AD FS。 Azure 中的 AD FS 會驗證安全性令牌。 如果令牌有效,AD FS 可以將宣告傳遞至在 Azure 中執行的 Web 應用程式,以授權它們。

    Note

    您也可以使用 Azure 閘道來設定 VPN 通道,為受信任的合作夥伴提供 AD FS 的直接存取權。 從這些合作夥伴收到的要求不會通過 WAP 伺服器。

Components

此架構會擴充在 Azure 虛擬網路中部署 AD DS 中所述的實作。 其中包含下列元件:

  • AD DS 子網是將IP位址範圍對應至月臺的物件。 此對應可讓域控制器根據客戶端的網路位置有效率地直接驗證和複寫。

  • AD DS 伺服器 是裝載 Active Directory 網域服務的域控制器。 它們提供跨企業網路的集中式驗證、原則強制執行和目錄數據複寫。

  • AD FS 子網 是裝載 AD FS 伺服器或 WAP 伺服器之網路或虛擬基礎結構內定義的 IP 位址範圍。 此IP位址範圍可啟用安全的流量流量和網站感知驗證。

  • AD FS 伺服器 是內部同盟伺服器,會發出安全性令牌,並使用宣告型身分識別通訊協議來處理驗證要求。

  • AD FS Proxy 子網 是一個網路區段,通常是裝載 WAP 伺服器的 DMZ。 它可安全地將外部驗證流量轉送至內部 AD FS 伺服器。

  • AD FS WAP 伺服器 是部署在周邊網路中,預先驗證外部使用者要求並安全地轉送至 AD FS 以進行同盟存取的反向 Proxy 伺服器。

案例詳細資料

AD FS 可以裝載於內部部署,但如果您的應用程式是混合式,其中某些部分是在 Azure 中實作,則復寫雲端中的 AD FS 可能會更有效率。

上圖顯示下列案例:

  • 來自合作夥伴組織的應用程式程式代碼會存取裝載於 Azure 虛擬網路內的 Web 應用程式。

  • 外部註冊的使用者,其認證儲存在 Active Directory 網域服務 (AD DS) 內,會存取裝載於 Azure 虛擬網路內的 Web 應用程式。

  • 使用授權裝置連線到虛擬網路的用戶會執行裝載於 Azure 虛擬網路內的 Web 應用程式。

此參考架構著重於 被動同盟,其中同盟伺服器會決定如何及何時驗證使用者。 使用者會在應用程式啟動時提供登入資訊。 此機制最常供網頁瀏覽器使用,且牽涉到將瀏覽器重新導向至使用者驗證的網站通訊協定。 AD FS 也支援 主動同盟,其中應用程式負責提供認證,而不需要進一步的使用者互動,但該案例不在此架構的範圍內。

如需其他考慮,請參閱 整合內部部署 Active Directory 網域與 Microsoft Entra ID

潛在使用案例

此架構的一般用法包括:

  • 工作負載部分在內部部署和 Azure 中執行的混合式應用程式。

  • 使用同盟授權向合作夥伴組織公開 Web 應用程式的解決方案。

  • 支援從組織防火牆外部執行的網頁瀏覽器存取的系統。

  • 可讓使用者從授權的外部裝置連線,例如遠端計算機、筆記本和其他行動裝置,來存取 Web 應用程式的系統。

Recommendations

您可以將以下建議應用於大多數場景。 除非您有覆寫建議的特定需求,否則請遵循這些建議。

網路建議

針對裝載 AD FS 和 WAP 伺服器且具有靜態私人 IP 位址的每個 VM 設定網路介面。

請勿提供AD FS VM 公用IP位址。 如需詳細資訊,請參閱 安全性考量 一節。

針對每個 AD FS 和 WAP VM 的網路介面,設定慣用和次要域名服務 (DNS) 伺服器的 IP 位址,以參考 AD DS VM。 AD DS VM 應該正在執行 DNS。 必須執行此步驟,才能讓每個 VM 加入網域。

AD FS 安裝

部署同盟伺服器陣列一文提供如何安裝和設定AD FS的詳細指示。 在伺服器陣列中設定第一部 AD FS 伺服器之前,請先執行下列工作:

  1. 取得公開信任的憑證,以執行伺服器驗證。 主體名稱必須包含用戶端用來存取同盟服務的名稱。 這個識別元可以為負載平衡器註冊的 DNS 名稱, 例如 adfs.contoso.com。 請避免使用通配符名稱,例如 *.contoso.com 基於安全性考慮。 在所有 AD FS 伺服器 VM 上使用相同的憑證。 您可以從受信任的證書頒發機構單位購買憑證,但如果您的組織使用 Active Directory 憑證服務,您可以建立自己的憑證。

    DRS 會使用 主體別名 來啟用外部裝置的存取。 此 DNS 名稱應遵循 格式 enterpriseregistration.contoso.com

    如需詳細資訊,請參閱 取得及設定AD FS的安全套接字層憑證

  2. 在域控制器上,產生密鑰散發服務 (KDS) 的新根密鑰。 將有效時間設定為目前時間減去 10 小時。 此設定可減少在跨網域散發和同步處理金鑰時可能發生的延遲。 必須執行此步驟,才能支援建立用來執行AD FS服務的群組服務帳戶。 下列 PowerShell 命令示範如何產生具有時間位移的新 KDS 根密鑰:

    Add-KdsRootKey -EffectiveTime (Get-Date).AddHours(-10)
    
  3. 將每個 AD FS 伺服器 VM 新增至網域。

Note

若要安裝AD FS,執行網域主要域控制器模擬器彈性單一主機作業角色的域控制器必須執行並從AD FS VM 存取。

AD FS 信任

在您的AD FS 安裝與任何合作夥伴組織的同盟伺服器之間建立同盟信任。 設定任何必要的宣告篩選和對應。

  • 每個合作夥伴組織的 DevOps 人員都必須為可透過 AD FS 伺服器存取的 Web 應用程式新增信賴憑證者信任。

  • 組織中的 DevOps 人員必須設定宣告提供者信任,讓您的 AD FS 伺服器信任合作夥伴組織所提供的宣告。

  • 組織中的 DevOps 人員也必須設定 AD FS,將宣告傳遞至組織的 Web 應用程式。

如需詳細資訊,請參閱 建立同盟信任

發佈組織的 Web 應用程式,並透過 WAP 伺服器使用預先驗證讓外部合作夥伴使用它們。 如需詳細資訊,請參閱 使用AD FS預先驗證發佈應用程式

AD FS 支援令牌轉換和增強。 Microsoft Entra 識別碼不提供此功能。 藉由使用 AD FS 設定信任關係時,您可以執行下列工作:

  • 設定授權規則的宣告轉換。 例如,您可以將非Microsoft合作夥伴組織所使用的表示法,將群組安全性對應至 AD DS 可以在組織中授權的內容。

  • 將宣告從某個格式轉換成另一種格式。 例如,如果您的應用程式僅支援SAML 1.1宣告,則可以從SAML 2.0對應至SAML 1.1。

AD FS 監視

適用於AD FS 2012 R2 的 Microsoft System Center 管理元件提供同盟伺服器的AD FS 部署主動式和回應式監視。 此管理元件會監視AD FS部署的下列層面:

  • AD FS 服務在其事件記錄檔中記錄的事件

  • AD FS 性能計數器收集的效能數據

  • AD FS 系統和 Web 應用程式的整體健康情況(信賴憑證者)以及重大問題和警告

另一個選項是 使用 Microsoft Entra Connect Health 監視 AD FSConnect Health 提供內部部署身分基礎架構的監控。 它可讓您維護與 Microsoft 365 和 Microsoft 在線服務的可靠連線。 它藉由提供重要身分識別元件的監視功能來達到此可靠性。 它還使有關這些組件的關鍵數據點易於訪問。

Considerations

這些考量能實作 Azure Well-Architected Framework 的支柱,這是一組指導原則,可以用來改善工作負載的品質。 如需詳細資訊,請參閱 Well-Architected Framework

Reliability

可靠性有助於確保您的應用程式可以符合您對客戶的承諾。 如需詳細資訊,請參閱 可靠性的設計檢閱檢查清單。

建立至少兩部伺服器的AD FS 伺服器陣列,以提高服務的可用性。 針對伺服器陣列中的每個AD FS VM 使用不同的記憶體帳戶。 此方法有助於確保單一儲存體帳戶中的失敗不會使整個伺服器陣列無法存取。

為 AD FS 和 WAP VM 建立個別的 Azure 可用性設定組。 確定每個集合中至少有兩部 VM。 每個可用性設定組至少必須有兩個更新網域和兩個容錯網域。

執行下列步驟來設定AD FS VM和 WAP VM 的負載平衡器:

  • 使用 Azure 負載平衡器提供 WAP VM 的外部存取權和內部負載平衡器,以將負載分散到伺服器數位中的 AD FS 伺服器。

  • 只將出現在埠 443 (HTTPS) 上的流量傳遞至 AD FS 或 WAP 伺服器。

  • 為負載平衡器提供靜態IP位址。

  • 使用 HTTP 對 /adfs/probe建立健康情況探查。 如需詳細資訊,請參閱 建立 Azure Load Balancer 的自定義 HTTP/HTTPS 健康情況探查

    Note

    AD FS 伺服器會使用伺服器名稱指示通訊協定,這會導致負載平衡器中的 HTTPS 端點探查失敗。

  • 將 DNS A 記錄新增至 AD FS 負載平衡器的網域。 指定負載平衡器的 IP 位址,並在網域中指定名稱,例如 adfs.contoso.com。 此 DNS 記錄是用戶端和 WAP 伺服器用來存取 AD FS 伺服器陣列的名稱。

您可以使用 SQL Server 或 Windows 內部資料庫 來儲存 AD FS 組態資訊。 Windows 內部資料庫 提供基本備援。 變更只會直接寫入 AD FS 叢集中的其中一個 AD FS 資料庫,而其他伺服器則使用提取複寫讓其資料庫保持最新狀態。 使用 SQL Server 可以使用故障轉移叢集或鏡像來提供完整的資料庫備援和高可用性。

安全性

安全性可提供針對蓄意攻擊和濫用寶貴數據和系統的保證。 如需詳細資訊,請參閱 安全性的設計檢閱檢查清單。

AD FS 使用 HTTPS,因此請確定包含 Web 層 VM 的子網 NSG 規則允許 HTTPS 要求。 這些要求可能來自內部部署網路、包含 Web 層、商務層、數據層、私人 DMZ、公用 DMZ 的子網,以及包含 AD FS 伺服器的子網。

防止將AD FS 伺服器直接暴露至因特網。 AD FS 伺服器是已加入網域的計算機,具有授與安全性令牌的完整授權。 如果伺服器遭到入侵,惡意使用者可以對所有 Web 應用程式和受 AD FS 保護的所有同盟伺服器發出完整存取令牌。 如果您的系統必須處理來賓未從信任的合作夥伴網站連線的要求,請使用 WAP 伺服器來處理這些要求。 如需詳細資訊,請參閱 放置同盟伺服器 Proxy 的位置

將AD FS 伺服器和 WAP 伺服器放在具有自己防火牆的個別子網中。 您可以使用 NSG 規則來定義防火牆規則。 所有防火牆都應該允許埠 443 (HTTPS) 上的流量。

限制對 AD FS 和 WAP 伺服器的直接登入存取。 只有 DevOps 員工才能連線。 請勿將 WAP 伺服器加入網域。

請考慮使用一組網路虛擬設備來記錄流量周遊虛擬網路邊緣的詳細資訊,以供稽核之用。

成本優化

成本優化著重於減少不必要的費用,並提升營運效率的方式。 如需詳細資訊,請參閱 成本優化的設計檢閱檢查清單。

Microsoft Entra 網域服務

請考慮將 entra Domain Services Microsoft為多個工作負載耗用的共用服務,以降低成本。 如需詳細資訊,請參閱 Domain Services 定價

AD FS

如需Microsoft Entra ID 提供之版本的相關信息,請參閱 Microsoft Entra 定價。 AD FS 功能適用於所有版本。

卓越營運

卓越營運涵蓋部署應用程式的作業程式,並讓它在生產環境中執行。 如需詳細資訊,請參閱 Operational Excellence的設計檢閱檢查清單。

DevOps 人員應該準備好執行下列工作:

  • 管理同盟伺服器,包括管理AD FS伺服器陣列、管理同盟伺服器上的信任原則,以及管理同盟服務使用的憑證

  • 管理 WAP 伺服器,包括管理 WAP 伺服器陣列和憑證

  • 管理 Web 應用程式,包括設定信賴憑證者、驗證方法和宣告對應

  • 備份 AD FS 元件

如需其他 DevOps 考慮,請參閱 在 Azure 虛擬網路中部署 AD DS

效能效率

效能效率是指工作負載能夠有效率地調整以符合使用者需求。 如需詳細資訊,請參閱 效能效率的設計檢閱檢查清單。

下列考慮摘要說明在規劃AD FS部署一文中,提供調整AD FS伺服器陣列大小的起點:

  • 如果您有少於1,000個使用者,請勿建立專用伺服器。 相反地,在雲端的每個 AD DS 伺服器上安裝 AD FS。 請確定您至少有兩部 AD DS 伺服器可維護可用性。 建立單一 WAP 伺服器。

  • 如果您有 1,000 到 15,000 個使用者,請建立兩部專用 AD FS 伺服器和兩部專用 WAP 伺服器。

  • 如果您有 15,000 到 60,000 個使用者,請建立 3 到 5 部專用 AD FS 伺服器,以及至少兩部專用 WAP 伺服器。

這些考慮假設您在 Azure 中使用雙四核心 VM(標準D4_v2或更好) 大小。

如果您使用 Windows 內部資料庫來儲存 AD FS 組態數據,則僅限於伺服器數位中的 8 部 AD FS 伺服器。 如果您認為未來可能需要更多專案,請使用 SQL Server。 如需詳細資訊,請參閱 AD FS組態資料庫的角色

Contributors

本文由 Microsoft 維護。 下列參與者撰寫本文。

主要作者:

若要查看非公開的 LinkedIn 個人檔案,請登入 LinkedIn。

後續步驟