AD FS 設定資料庫的角色

AD FS 設定資料庫儲存可代表 Active Directory Federation Services (AD FS) (即 Federation Service) 單一執行個體的所有設定資料。 AD FS 設定資料庫定義了供 Federation Service 識別夥伴、憑證、屬性存放區、宣告與這些關聯實體之各種相關資料所需的參數集。 您可以將此設定資料儲存至 Microsoft SQL Server® 資料庫或 Windows Server 2012 或更高版本所含的 Windows 內部資料庫 (WID) 功能。

注意

您可以將 AD FS 設定資料庫的整個內容儲存在單一 WID 執行個體或單一 SQL 資料庫執行個體中,但不能分開儲存。 這表示對於相同的 AD FS 設定資料庫執行個體,您不能為某些同盟伺服器使用 WID 並為其他同盟伺服器使用 SQL Server 資料庫。

您可以搭配使用此主題中的下列資訊與 AD FS 部署拓撲考量中所提供的內容,以瞭解選擇 WID 或 SQL Server 來儲存 AD FS 設定資料庫的優缺點:

WID 使用關聯式資料存放區,而且沒有自己的管理使用者介面 (UI)。 管理員可以改為使用 [AD FS 管理] 嵌入式管理單元、Fsconfig.exe 或 Windows PowerShell™ Cmdlet 來修改 AD FS 設定資料庫的內容。

使用 WID 來儲存 AD FS 設定資料庫

您可以使用 Fsconfig.exe 命令列工具或 [AD FS 同盟伺服器設定精靈],以使用 WID 作為存放區來建立 AD FS 設定資料庫。 使用上述任一工具時,您可以選擇下列任一選項來建立您的同盟伺服器拓撲。 這些選項中的每個選項都是使用 WID 來儲存 AD FS 設定資料庫:

  • 建立獨立同盟伺服器

  • 在同盟伺服器陣列中建立第一部同盟伺服器

  • 新增同盟伺服器到同盟伺服器陣列

如果您選取獨立選項,則會使用 WID 來儲存 AD FS 設定資料庫的單一執行個體。 此執行個體無法在多部同盟伺服器之間共用。 它只適用於測試實驗室環境。 如需獨立同盟伺服器選項或其設定方式的詳細資訊,請參閱使用 WID 的獨立同盟伺服器建立獨立同盟伺服器

若選取 [在同盟伺服器陣列中建立第一部同盟伺服器] 選項,會設定 WID 的延展性,允許您稍後將其他同盟伺服器新增到陣列。 如需部署 WID 伺服器陣列或其設定方式的詳細資訊,請參閱使用 WID 的同盟伺服器陣列在同盟伺服器陣列中建立第一部同盟伺服器

若選取新增同盟伺服器選項,會設定 WID 以根據設定的間隔時間將設定資料庫變更複寫到新的同盟伺服器。 如需將同盟伺服器新增至 WID 伺服器陣列的詳細資訊,請參閱使用 WID 的同盟伺服器陣列將同盟伺服器新增至同盟伺服器陣列

注意

當您使用 WID 來部署同盟伺服器陣列時,AD FS 的某些功能可能會無法使用。 設定您的伺服器陣列時若要存取完整功能,請考慮改為使用 Microsoft SQL Server 來儲存 AD FS 設定資料庫。 如需詳細資訊,請參閱 AD FS 部署拓撲考量

WID 同盟伺服器陣列的運作方式

本節說明一些重要概念,它們說明 WID 同盟伺服器陣列如何在主要同盟伺服器與次要同盟伺服器之間複寫資料。 .

主要同盟伺服器

同盟伺服器是一部電腦,而此電腦執行 Windows Server 2012 或更高版本、已使用 [AD FS 同盟伺服器設定精靈] 設定為同盟伺服器角色,而且具有 AD FS 設定資料庫讀取/寫入複本。 當您使用 [AD FS 同盟伺服器設定精靈] 並且選取可建立新同盟服務並將該電腦設定為伺服器陣列中第一部同盟伺服器的選項時,一律會建立主要同盟伺服器。 此陣列中的所有其他同盟伺服器 (亦稱為次要同盟伺服器) 必須將主要同盟伺服器上的變更同步到其本機儲存的 AD FS 設定資料庫複本。

次要同盟伺服器

次要同盟伺服器會儲存來自主要同盟伺服器的 AD FS 設定資料庫複本,但這些是唯讀複本。 次要同盟伺服器會根據已設定的間隔時間定期連線到陣列中的主要同盟伺服器並進行輪詢以檢查資料是否已變更,來同步資料。 次要同盟伺服器的存在目的是為主要同盟伺服器提供容錯功能,同時用來負載平衡您網路環境中不同網站所發出的存取要求。

AD FS 設定資料庫的同步方式

因為 AD FS 設定資料庫所扮演的重要角色,所以網路中的所有同盟伺服器都可以存取此資料庫,以在處理要求時提供容錯與負載平衡功能 (使用網路負載平衡器時)。 不過,若要讓次要同盟伺服器提供此功能,必須同步儲存在主要同盟伺服器上的 AD FS 設定資料庫。

當您新增同盟伺服器到陣列時,將成為次要同盟伺服器的新電腦會連線到主要同盟伺服器,以複寫 AD FS 設定資料庫的複本。 從現在開始,新的同盟伺服器會繼續定期從主要同盟伺服器同步更新,如下圖所示。

AD FS configuration

每部次要同盟伺服器每隔五分鐘都會輪詢主要同盟伺服器以同步變更。 您可以使用 Windows PowerShell Cmdlet 來調整這個五分鐘的預設值,或隨時強制立即執行同步。 如需如何執行此作業的詳細資訊,請參閱使用 Windows PowerShell 的 AD FS 管理

WID 同步程序也支援遞增傳輸,可提供更有效率的變更傳輸。 遞增傳輸程序所需的網路頻寬極小,而且傳輸完成時間更快。

注意

支援將 AD FS 設定資料庫從 WID 移轉到 SQL Server 執行個體。 如需如何執行此作業的詳細資訊,請參閱 TechNet Wiki 網站上的 AD FS:將 AD FS 設定資料庫移轉至 SQL Server

如何管理 AD FS 同步處理內容

本節描述如何檢視和編輯 AD FS 設定資料庫同步處理內容。 .

Get-ADFSSyncProperties Cmdlet 會取得 Active Directory 同盟服務 (AD FS) 設定資料庫的同步處理內容。

PS C:\> Get-ADFSSyncProperties

在主要 AD FS 伺服器上,此 Cmdlet 只會顯示 [角色] 是 [主要電腦]。 在 [次要] 成員上,將會顯示其餘的設定,包括主要電腦上次同步處理的完整網域名稱、上次同步處理狀態和時間、輪詢持續時間、目前設定的主要電腦名稱、主要電腦連接埠以及 [次要電腦] 角色。

Set-ADFSSyncProperties Cmdlet 會修改 Active Directory 同盟服務 (AD FS) 設定資料庫的同步處理頻率。 Cmdlet 也會指定哪部同盟伺服器是同盟伺服器陣列中的主要伺服器。

注意

若主要同盟伺服器當機並離線,所有次要同盟伺服器會正常地繼續處理要求。 不過,在主要同盟伺服器重新上線之前,無法對 Federation Service 進行任何變更。 您也可以使用 Windows PowerShell 將次要同盟伺服器提升為主要同盟伺服器。 如果您提名新的主要伺服器,則必須修改其餘的伺服器,以反映新的主要伺服器。 有 2 個主要伺服器具有 WID 伺服器陣列,將會影響伺服器陣列的穩定性,而且可能會遺失資料。

修改伺服器陣列的輪詢持續時間

PS C:\> Set-AdfsSyncProperties -PollDuration 3600 -PrimaryComputerName "FederationServerPrimary"

此命令會將資料庫同步處理修改為 3600 秒。 此命令會變更主要同盟伺服器。

將伺服器從次要變更為主要

PS C:\> Set-AdfsSyncProperties -Role "PrimaryComputer"

此命令會將 WID 伺服器陣列中的 AD FS 伺服器從次要變更為主要。

將主要伺服器變更為次要伺服器

PS C:\> Set-AdfsSyncProperties -Role "SecondaryComputer" -PrimaryComputerName "<FQDN of primary server>"

此命令會將 WID 伺服器陣列中的主要 AD FS 伺服器變更為次要伺服器。 您必須指定主要伺服器的完整網域名稱。 不這樣做可能會導致未正確同步處理所有次要 AD FS 伺服器。 注意:主要伺服器必須可以透過 HTTP 從次要伺服器的連接埠 80 進行存取。

如需詳細資訊,請參閱:Set-AdfsSyncProperties

使用 SQL Server 來儲存 AD FS 設定資料庫

您可以使用 Fsconfig.exe 命令列工具,來建立使用單一 SQL Server 資料庫執行個體作為存放區的 AD FS 設定資料庫。 相較於 WID,使用 SQL Server 資料庫做為 AD FS 設定資料庫提供下列優點:

  • 系統管理員可以使用 SQL Server 的高可用性功能

  • 在高流量的情況下,它提供更好的效能。

  • 其提供支援 SAML 成品解析與 SAML/WS-同盟權杖重新執行偵測 (描述如下) 的功能。

AD FS 設定資料庫儲存至 SQL 資料庫執行個體時,「主要同盟伺服器」一詞不適用,因為所有同盟伺服器都可以讀取和寫入使用相同叢集 SQL Server 執行個體的 AD FS 設定資料庫,如下圖所示。

AD FS roles

您可以使用 SQL Server 來設定兩部或更多伺服器,讓其以伺服器叢集方式運作,以確定 AD FS 具備高可用性功能,可處理連入的用戶端要求。 高可用性提供向外延展架構,在此架構中,您可以新增其他伺服器來增加伺服器容量。 您可以透過自動叢集容錯移轉來減少單一失敗點。

使用 SQL 叢集技術提供的網路負載平衡與容錯移轉服務,即可獲得高可用性。 如需如何設定 SQL Server 高可用性的詳細資訊,請參閱高可用性解決方案概觀

SAML 成品解析

安全性聲明標記語言 (SAML) 成品解析是以 SAML 2.0 通訊協定為基礎的端點,其描述信賴憑證者如何直接從宣告提供者擷取權杖。 在解析程序的第一個階段中,瀏覽器用戶端會聯繫資源同盟伺服器並向其提供成品。 在第二個階段中,資源同盟伺服器會將該成品傳送到帳戶夥伴組織中裝載的 SAML 成品端點 URL 以解析成品訊息。 在最後的階段中,帳戶同盟伺服器會代表瀏覽器用戶端將權杖簽發給同盟伺服器。

注意

如果您是帳戶夥伴組織中的管理員,則請務必將 SSL 憑證 (此憑證鏈結至 Windows 根憑證計畫成員的根憑證) 指派或繫結至伺服器陣列中所有帳戶同盟伺服器上 IIS 中的同盟被動網站 (<ComputerName>\網站\預設網站\adfs\ls)。 此動作非常重要,它可以讓您不需要在資源同盟伺服器上手動將 SSL 憑證新增至本機電腦「受信任的人」憑證存放區,以及避免資源同盟伺服器無法解析在您的組織中發佈的成品。

SAML/WS-同盟權杖重新執行偵測

「權杖重新執行」這個詞指的是帳戶夥伴組織中的瀏覽器用戶端嘗試多次傳送接收自帳戶同盟伺服器的相同權杖以向資源同盟伺服器驗證的動作。 當使用者按一下其瀏覽器的 [上一頁] 按鈕嘗試重新提交驗證頁面時,會發生此動作。

AD FS 提供稱為「權杖重新執行偵測」的功能,可偵測使用相同權杖的多個權杖要求並予以捨棄。 啟用此功能時,權杖重新執行偵測可保護 WS-同盟被動設定檔與 SAML WebSSO 設定檔中驗證要求的完整性 (透過確定不會多次使用相同的權杖)。 在安全性要求非常高的情況下 (例如使用資訊站時),應該啟用此功能。

在資訊站範例中,當使用者登出網站之後,稍後惡意使用者可以嘗試使用瀏覽器歷程記錄來重新傳送前一位使用者載入的同盟驗證頁面。 此功能可以減輕此顧慮,方式是儲存帳戶夥伴組織所進行成功驗證的其他相關資訊,以偵測後續的權杖重新執行,並防止惡意使用者進行多次驗證嘗試。