編輯

共用方式為


將內部部署 AD FS 擴充至 Azure

Microsoft Entra ID
Microsoft Entra
Azure Load Balancer

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

架構

此圖顯示具有 Active Directory 同盟服務 的安全混合式網路架構範例。

下載此架構的 Visio 檔案

注意

Visio 檔案包含 4 個圖表索引標籤。 選取 [AD FS] 索引標籤,以查看本文的相關架構圖表。

工作流程

  • 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 裝置註冊服務,從執行需要存取 Web 應用程式的網頁瀏覽器或裝置的外部使用者驗證和授權連入要求。

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

    如需AD FS運作方式的詳細資訊,請參閱 Active Directory 同盟服務 概觀。 此外,Azure 中的 AD FS 部署一文包含實作的詳細逐步簡介。

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

  • AD FS Web 應用程式 Proxy (WAP) 伺服器。 這些 VM 會作為 AD FS 伺服器,用於來自合作夥伴組織和外部裝置的連入要求。 WAP 伺服器可作為篩選條件,防止 AD FS 伺服器從因特網直接存取。 如同AD FS 伺服器,使用負載平衡在伺服器陣列中部署 WAP 伺服器可提供比部署獨立伺服器集合更高的可用性和延展性。

    注意

    如需安裝 WAP 伺服器的詳細資訊,請參閱安裝和設定 Web 應用程式 Proxy 伺服器

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

    注意

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

元件

此架構會擴充將 AD DS 擴充至 Azure 中所述的實作。 其中包含下列元件。

案例詳細資料

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

上圖顯示下列案例:

  • 來自合作夥伴組織的應用程式程式代碼會存取裝載於 Azure VNet 內的 Web 應用程式。
  • 外部註冊的使用者,其認證儲存在 Active Directory 網域服務 (DS) 內,會存取裝載於 Azure VNet 內的 Web 應用程式。
  • 使用授權裝置連線到 VNet 的用戶會執行裝載於 Azure VNet 內的 Web 應用程式。

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

如需其他考慮,請參閱選擇整合 內部部署的 Active Directory 與 Azure 的解決方案。

潛在使用案例

此結構的一般用法包括:

  • 工作負載部分在內部部署和 Azure 中執行的混合式應用程式。
  • 使用同盟授權向合作夥伴組織公開 Web 應用程式的解決方案。
  • 支援從組織防火牆外部執行的網頁瀏覽器存取的系統。
  • 可讓使用者從授權的外部裝置連線,例如遠端計算機、筆記本和其他行動裝置,來存取 Web 應用程式的系統。

建議

下列建議適用於大部分案例。 除非您有覆寫建議的特定需求,否則請遵循這些建議。

網路功能的建議

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

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

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

AD FS 安裝

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

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

    裝置 註冊服務會使用主體別名 來啟用外部裝置的存取。 這應該是 格式 enterpriseregistration.contoso.com

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

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

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

注意

若要安裝 AD FS,執行主要域控制器 (PDC) 模擬器彈性單一主機作業 (FSMO) 角色的域控制器必須執行並從 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合作夥伴組織所使用的表示法,將群組安全性對應至 Active Directory DS 可以在組織中授權的內容。
  • 將宣告從某個格式轉換成另一種格式。 例如,如果您的應用程式僅支援SAML 1.1宣告,則可以從SAML 2.0對應至SAML 1.1。

AD FS 監視

Active Directory 同盟服務 2012 R2 Microsoft System Center 管理元件提供同盟伺服器的 AD FS 部署主動式和回應式監視。 此管理元件會監視:

  • AD FS 服務在其事件記錄檔中記錄的事件。
  • AD FS 性能計數器收集的效能數據。
  • AD FS 系統和 Web 應用程式的整體健康情況(信賴憑證者),並提供重大問題和警告的警示。

另一個選項是 使用 Microsoft Entra Connect Health 監視 AD FS。 Microsoft Entra Connect Health 為您的內部部署身分識別基礎結構提供強固監視功能。 其可讓您維持與 Microsoft 365 和 Microsoft Online Services 的可靠連線。 藉由為您的關鍵身分識別元件提供監視功能,便得以達成此可靠性。 此外,它還可讓您輕鬆存取這些元件的相關關鍵資料點。

考量

這些考量能實作 Azure Well-Architected Framework 的要素,其為一組指導原則,可以用來改善工作負載的品質。 如需詳細資訊,請參閱 Microsoft Azure Well-Architected Framework (部分機器翻譯)。

效能效益

效能效率可讓您的工作負載進行調整,以有效率的方式符合使用者對其放置的需求。 如需詳細資訊,請參閱效能效率要件概觀

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

  • 如果您有少於1000個使用者,請勿建立專用伺服器,而是在雲端的每個Active Directory DS 伺服器上安裝AD FS。 請確定您至少有兩部 Active Directory DS 伺服器可維護可用性。 建立單一 WAP 伺服器。
  • 如果您有 1000 到 15,000 位使用者,請建立兩部專用 AD FS 伺服器和兩部專用 WAP 伺服器。
  • 如果您有 15,000 到 60,000 個使用者,請建立 3 到 5 部專用 AD FS 伺服器,以及至少兩部專用 WAP 伺服器。

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

如果您使用 Windows 內部資料庫 來儲存AD FS組態數據,則僅限於伺服器數位中的八部AD FS 伺服器。 如果您預期未來需要更多,請使用 SQL Server。 如需詳細資訊,請參閱 The Role of the AD FS Configuration Database

可靠性

可靠性可確保您的應用程式符合您對客戶的承諾。 如需詳細資訊,請參閱可靠性要素的概觀 (部分機器翻譯)。

建立具有至少兩部伺服器的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建立健康情況探查。 如需詳細資訊,請參閱硬體負載平衡器健康情況檢查和Web應用程式 Proxy /AD FS 2012 R2

    注意

    AD FS 伺服器會使用伺服器名稱指示 (SNI) 通訊協定,因此嘗試使用負載平衡器的 HTTPS 端點進行探查會失敗。

  • 將 DNS A 記錄新增至 AD FS 負載平衡器的網域。 指定負載平衡器的IP位址,並在網域中指定名稱(例如 adfs.contoso.com)。 這是用戶端和 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 伺服器來處理這些要求。 如需詳細資訊,請參閱 Where to Place a Federation Server Proxy

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

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

請考慮使用一組網路虛擬設備來記錄流量,以周遊虛擬網路邊緣的流量,以進行稽核。

成本最佳化

成本最佳化是關於考慮如何減少不必要的費用,並提升營運效率。 如需詳細資訊,請參閱成本最佳化要素的概觀

以下是此架構中使用的服務成本考慮。

AD 網域服務

請考慮將 Active Directory 網域服務 為多個工作負載所取用的共享服務,以降低成本。 如需詳細資訊,請參閱 Active Directory 網域服務 定價

Active Directory 同盟服務

如需Microsoft Entra標識符所提供版本的相關信息,請參閱 Microsoft Entra 定價。 AD 同盟服務功能適用於所有版本。

卓越營運

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

  • 管理同盟伺服器,包括管理AD FS伺服器陣列、管理同盟伺服器上的信任原則,以及管理同盟服務所使用的憑證。
  • 管理 WAP 伺服器,包括管理 WAP 伺服器陣列和憑證。
  • 管理 Web 應用程式,包括設定信賴憑證者、驗證方法和宣告對應。
  • 備份 AD FS 元件。

如需其他 DevOps 考慮,請參閱 DevOps:將 Active Directory 網域服務 (AD DS) 擴充至 Azure

參與者

本文由 Microsoft 維護。 原始投稿人如下。

主體作者:

若要查看非公開的 LinkedIn 設定檔,請登入 LinkedIn。

後續步驟