以下是部署 Active Directory 同盟服務 (AD FS) 的需求:
憑證需求
TLS/SSL 憑證
每個 AD FS 和 Web 應用程式 Proxy 伺服器都有 TLS/SSL 憑證,以服務對同盟服務的 HTTPS 要求。 Web 應用程式 Proxy 可以有額外的憑證來服務對已發佈應用程式的要求。
TLS/SSL 憑證的建議
針對所有 AD FS 同盟伺服器和 Web 應用程式 Proxy 使用相同的 TLS/SSL 憑證。
TLS/SSL 憑證的需求
同盟伺服器上的 TLS/SSL 憑證必須符合下列需求:
- 憑證是公開信任的(用於生產部署)。
- 憑證包含伺服器驗證增強金鑰使用方式 (EKU) 值。
- 憑證包含同盟服務名稱,例如在主體或主體替代名稱(SAN)中包含
fs.contoso.com
。 - 針對埠 443 上的使用者憑證驗證,憑證包含
certauth.\<federation service name\>
,例如 SAN 中的certauth.fs.contoso.com
。 - 針對使用 Windows 10 前用戶端對內部部署資源的裝置註冊或新式驗證,SAN 必須包含組織中所使用的每個使用者主體名稱 (UPN) 後綴
enterpriseregistration.\<upn suffix\>
。
Web 應用程式 Proxy 上的 TLS/SSL 憑證必須符合下列需求:
- 如果代理伺服器用作代理 AD FS 使用 Windows 整合式驗證的要求,則代理伺服器的 TLS/SSL 憑證必須與同盟伺服器的 TLS/SSL 憑證相同(共用相同密鑰)。
- 如果 AD FS 屬性 ExtendedProtectionTokenCheck啟用 ,則 Proxy TLS/SSL 憑證必須與同盟伺服器 TLS/SSL 憑證相同(使用相同的密鑰)。
- 否則,Proxy TLS/SSL 憑證的需求與同盟伺服器 TLS/SSL 憑證的需求相同。
服務通訊憑證
大部分的 AD FS 案例都不需要此憑證,包括Microsoft Entra ID 和 Office 365。 根據預設,AD FS 會將初始設定時提供的 TLS/SSL 憑證設定為服務通訊憑證。
服務通訊憑證建議
- 使用與您用於 TLS/SSL 的相同憑證。
令牌簽署憑證
此憑證用於將發行的令牌簽署給信賴方,因此信賴方應用程式必須將該憑證及其相關聯的密鑰識別為已知和受信任的。 當令牌簽署憑證變更時,例如當憑證到期且您設定新憑證時,必須更新所有信賴憑證者。
令牌簽署憑證的建議
使用AD FS預設、內部產生的自我簽署令牌簽署憑證。
令牌簽署憑證的要求
- 如果您的組織要求使用企業公鑰基礎結構 (PKI) 的憑證進行令牌簽署,您可以使用 Install-AdfsFarm Cmdlet 的 SigningCertificateThumbprint 參數來符合此需求。
- 無論您使用預設的內部產生憑證或外部註冊的憑證,當令牌簽署憑證變更時,您必須確定所有信賴憑證者都會使用新的憑證資訊來更新。 否則,這些依賴方無法登入系統。
令牌加密/解密憑證
此憑證供宣告提供者使用,這些提供者負責加密發行給 AD FS 的令牌。
令牌加密/解密憑證的建議
使用AD FS預設、內部產生的自我簽署令牌解密憑證。
加密/解密令牌憑證的要求
- 如果您的組織要求企業 PKI 的憑證用於令牌簽署,您可以使用 DecryptingCertificateThumbprint 參數 Install-AdfsFarm Cmdlet 來符合此需求。
- 無論您使用預設的內部產生憑證或外部註冊的憑證,當令牌解密憑證變更時,您必須確定所有宣告提供者都會使用新的憑證資訊更新。 否則,使用未更新的任何宣告提供者登入會失敗。
謹慎
用於令牌簽署和令牌解密/加密的憑證對於同盟服務的穩定性至關重要。 管理自己的令牌簽署 & 令牌解密/加密憑證的客戶應確保這些憑證已備份,並在復原事件期間獨立使用。
用戶憑證
- 當您使用 AD FS 的 x509 使用者憑證驗證時,所有使用者憑證必須鏈接至 AD FS 和 Web 應用程式 Proxy 伺服器信任的根憑證授權單位。
硬體需求
AD FS 和 Web 應用程式 Proxy 的硬體需求(無論是實體或虛擬)主要取決於 CPU,為此您應根據處理能力來調整系統的規模。
- 使用 AD FS 2016 容量規劃電子表格 來判斷所需的 AD FS 和 Web 應用程式代理伺服器數目。
AD FS 的記憶體和磁碟需求相當靜態。 下表顯示需求:
硬體需求 | 最低需求 | 建議的需求 |
---|---|---|
隨機存取記憶體 | 2 GB | 4 GB |
磁碟空間 | 32 GB | 100 GB |
SQL Server 硬體需求
如果您使用 Azure SQL 做為 AD FS 組態資料庫,請根據最基本的 SQL Server 建議來調整 SQL Server 的大小。 AD FS 資料庫大小很小,而 AD FS 不會對資料庫實例造成大量處理負載。 不過,AD FS 會在驗證期間多次連線到資料庫,因此網路連線應該是健全的。 不幸的是,AD FS 組態資料庫不支援 SQL Azure。
代理需求
若要進行外部網路存取,您必須部署 Web 應用程式 Proxy 角色服務 - 遠端存取伺服器角色的一部分。
第三方代理必須支援 MS-ADFSPIP 協議,才能作為 AD FS 代理。 如需第三方廠商的清單,請參閱 AD FS 的常見問題(FAQ)。
AD FS 2016 需要 Windows Server 2016 上的 Web 應用程式 Proxy 伺服器。 無法為在 2016 農場行為層級運行的 AD FS 2016 伺服器陣列設定低層級的代理伺服器。
無法在同一部計算機上安裝同盟伺服器和 Web 應用程式 Proxy 角色服務。
AD DS 需求
域控制器需求
AD FS 需要執行 Windows Server 2008 或更新版本的域控制器。
Windows Hello 企業版至少需要一個 Windows Server 2016 域控制器。
備註
Windows Server 2003 域控制器的所有環境支援都已結束。 如需詳細資訊,請參閱 Microsoft 生命週期資訊。
網域功能等級需求
加入 AD FS 伺服器的用戶帳戶網域及其所屬網域必須在 Windows Server 2003 或更新版本的網域功能層級上運作。
如果憑證明確對應至 AD DS 中的用戶帳戶,則需要 Windows Server 2008 網域功能等級或更新版本,才能進行用戶端憑證驗證。
架構需求
AD FS 2016 的新安裝需要 Active Directory 2016 架構(最低版本 85)。
將 AD FS 伺服器陣列行為層級提高至 2016 層級需要 Active Directory 2016 架構(最低版本 85)。
服務帳戶需求
任何標準網域帳戶都可以作為AD FS的服務帳戶。 也支援群組受管理的服務帳戶。 當您設定 AD FS 時,運行時間所需的許可權會自動新增回來。
AD 服務帳戶所需的使用者權限指派 以服務身分登入。
NT Service\adfssrv
和NT Service\drs
所需的用戶權力指派 產生安全性稽核 和 以服務身分登入。群組受管理的服務帳戶至少需要一個執行 Windows Server 2012 或更新版本的域控制器。 受控服務帳戶 gMSA 群組必須存在於預設
CN=Managed Service Accounts
容器之下。針對 Kerberos 驗證,必須在 AD FS 服務帳戶上註冊服務主體名稱 『
HOST/<adfs\_service\_name>
』。 根據預設,AD FS 會在建立新的 AD FS 伺服器陣列時設定這項需求。 如果此過程失敗,例如發生衝突或許可權不足,您會看到警告,此時您應該手動新增它。
網域需求
所有 AD FS 伺服器都必須加入 AD DS 網域。
伺服器陣列中的所有AD FS 伺服器都必須部署在相同的網域中。
要安裝 AD FS 伺服器陣列的第一個節點,需要確保 PDC 可用。
多重森林需求
加入 AD FS 伺服器的網域必須信任每個包含驗證 AD FS 服務使用者的網域或樹系。
AD FS 服務帳戶所屬的樹系必須信任所有使用者登入的樹系。
AD FS 服務帳戶必須具有許可權,才能讀取每個網域中的用戶屬性,其中包含向 AD FS 服務驗證的使用者。
配置資料庫需求
本節說明分別使用 Windows 內部資料庫 (WID) 或 SQL Server 作為資料庫之 AD FS 伺服器陣列的需求和限制:
WID
WID 伺服器陣列不支援 SAML 2.0 的憑證解析設定檔。
WID 伺服器陣列不支援令牌重播偵測。 這項功能僅在 AD FS 作為同盟提供者角色,並從外部宣告提供者取得安全性權杖的情境下使用。
下表摘要說明 WID 與 SQL Server 伺服器陣列中支援的 AD FS 伺服器數目。
1-100 RP 信託 | 超過 100 個 RP 信託 |
---|---|
1-30 AD FS 節點:支援 WID | 1-30 AD FS 節點: 不支援使用 WID - 必須使用 SQL |
超過 30 個 AD FS 節點: 不支援使用 WID - 需要 SQL | 超過 30 個 AD FS 節點: 不支援使用 WID - 需要 SQL |
SQL Server
針對 Windows Server 2016 中的 AD FS,支援 SQL Server 2008 和更新版本。
SQL Server 叢集支援 SAML 元素解析和令牌重放偵測。
瀏覽器需求
透過瀏覽器或瀏覽器控制項執行 AD FS 驗證時,您的瀏覽器必須符合下列需求:
必須啟用JavaScript。
針對單一登錄,用戶端瀏覽器必須設定為允許 Cookie。
必須支援伺服器名稱指示 (SNI)。
針對用戶憑證 & 裝置憑證驗證,瀏覽器必須支援 TLS/SSL 用戶端憑證驗證。
若要使用 Windows 整合式驗證進行無縫登錄,必須在近端內部網路區域或信任的網站區域中設定同盟服務名稱(例如
https:\/\/fs.contoso.com
)。
網路需求
防火牆需求
位於 Web 應用程式 Proxy 與同盟伺服器陣列之間的防火牆,以及用戶端與 Web 應用程式 Proxy 之間的防火牆,都必須啟用 TCP 連接埠 443 的輸入。
此外,如果您需要用戶端用戶憑證驗證,並使用 X509 使用者憑證進行用戶端TLS驗證,但未在 certauth 端點上啟用埠 443。 AD FS 2016 需要您在用戶端與 Web 應用程式 Proxy 之間的防火牆上啟用 TCP 連接埠 49443 輸入。 這項需求不適用於 Web 應用程式 Proxy 與同盟伺服器之間的防火牆。
如需混合式埠需求的詳細資訊,請參閱 混合式身分識別必要埠和通訊協定。
如需詳細資訊,請參閱 保護 Active Directory 同盟服務 的最佳做法
DNS 需求
針對內部網路存取,存取內部公司網路 (intranet) 內 AD FS 服務的所有用戶端都必須能夠將 AD FS 服務名稱解析為 AD FS 伺服器或 AD FS 伺服器的負載平衡器。
若要進行外部網路存取,所有從公司網路外部存取 AD FS 服務的用戶端(外部網路/因特網)都必須能夠將 AD FS 服務名稱解析為 Web 應用程式 Proxy 伺服器或 Web 應用程式 Proxy 伺服器的負載平衡器。
非軍事區域 (DMZ) 中的每個 Web 應用程式 Proxy 伺服器都必須能夠將 AD FS 服務名稱解析為 AD FS 伺服器或 AD FS 伺服器的負載平衡器。 您可以使用 DMZ 網路中替代的功能變數名稱系統 (DNS) 伺服器,或使用 HOSTS 檔案變更本機伺服器解析,來建立此組態。
針對 Windows 整合式驗證,您必須使用 DNS A 記錄(而非 CNAME)作為同盟服務名稱。
針對埠 443 的用戶憑證身份驗證,「certauth<同盟服務名稱>」必須在 DNS 中設定,才能解析到同盟伺服器或 Web 應用程式 Proxy。
針對使用 Windows 10 前用戶端進行裝置註冊或存取內部部署資源的新式驗證,
enterpriseregistration.\<upn suffix\>
,針對組織中所使用的每個 UPN 後綴,您必須設定它們以解析至同盟伺服器或 Web 應用程式 Proxy。
負載平衡器需求
- 負載平衡器不得終止 TLS/SSL。 AD FS 支援多個使用案例搭配憑證驗證,這會在終止 TLS/SSL 時中斷。 不支援在任何使用案例中於負載平衡器上中斷 TLS/SSL。
- 使用支援 SNI 的負載平衡器。 如果沒有,請在 AD FS 或 Web 應用程式 Proxy 伺服器上使用 0.0.0.0 備援綁定,應該作為解決辦法。
- 使用 HTTP(而非 HTTPS)探查端點來執行負載均衡器的健康檢查,以便進行流量路由。 這項需求可避免與 SNI 相關的任何問題。 這些探查端點的回應是 HTTP 200 OK,且會在本機提供,且不會依賴後端服務。 您可以使用路徑 『/adfs/probe』 透過 HTTP 存取 HTTP 探查
http://<Web Application Proxy name>/adfs/probe
http://<AD FS server name>/adfs/probe
http://<Web Application Proxy IP address>/adfs/probe
http://<AD FS IP address>/adfs/probe
- 不建議使用 DNS 輪詢作為負載平衡的方法。 使用這種類型的負載平衡不會提供以健康探測從負載平衡器中移除節點的自動方式。
- 不建議使用IP型會話親和性或黏性會話來驗證負載平衡器內AD FS的流量。 當您使用舊版驗證通訊協定讓郵件用戶端連線到 Office 365 郵件服務 (Exchange Online) 時,可能會造成特定節點的多載。
許可權需求
執行安裝和AD FS初始設定的系統管理員必須具有AD FS伺服器上的本機系統管理員許可權。 如果本機系統管理員沒有在 Active Directory 中建立物件的許可權,他們必須先讓網域管理員建立必要的 AD 對象,然後使用 AdminConfiguration 參數來設定 AD FS 伺服器陣列。