隱藏 SharePoint 2010 中的預設驗證提供者

英文原文已於 2011 年 5 月 8 日星期日發佈

SharePoint 2010 中最常發生的案例就是,將單一區域當做為多個驗證提供者使用。人們這麼做的其中一個原因是,他們想要使用某些宣告驗證 (例如 FBA 或 SAML),但是他們也想加入 Windows 宣告,以便 SharePoint 編目程式為區域編製索引。這個方法會造成雙重問題:

  1. 使用者會看到登入選項頁面,他們必須在其中選取 Windows 或其他驗證類型
  2. 當使用者加入網站 (或實際執行任何會叫用人員選擇的作業),他們會在選擇結果中看到 Active Directory 使用者,以及使用宣告驗證提供者的使用者。

那麼,我們可以做些什麼嗎?是的,若要解決第一個問題,我們可以撰寫自訂登入選擇頁面。我已經在我的部落格 https://blogs.msdn.com/b/sharepoint_cht/archive/2011/06/27/bypassing-the-multi-authentication-provider-selection-page-in-sharepoint-2010.aspx 寫過那個案例。但是,第二點 - 隱藏 AD 使用者而不會出現在人員選擇搜尋結果,又該如何?「2011 年 4 月的 CU」有解答! <快速筆記:在 4 月的 CU 中,您可能遇到與此相關的問題。6 月的 CU 將有更新版本。您的情況可能會不同,因此,請盡情測試。>  一旦套用 CU,您會看到 SPClaimProviderDefinitions 現在包含名為 "IsVisible" 的新屬性。您只要將 Active Directory 提供者的這個屬性設為 false,它就不會在您使用人員選擇時出現。

下列是一小段 PowerShell 程式碼片段,向您示範如何執行這項操作:

$cpm = Get-SPClaimProviderManager
$ad = get-spclaimprovider -identity "AD"
$ad.IsVisible = $false
$cpm.Update()

注意事項:

  1. PowerShell 命令 Get-SPClaimProvider 實際傳回 SPClaimProviderDefinition,即表示您沒問題。
  2. 使用 "AD" 識別,是因為那是 Active Directory 提供者的內部名稱。

在我的有限測試中,進行這項變更之後,我甚至不必執行 IISRESET。我只是進入,Active Directory 就不再在人員選擇的左邊窗格中顯示驗證提供者清單。相反地,若變更回來但未執行 IISRESET,清單就會立即出現。

目前的最大限制是,儘管清單不會出現,但最好您可以在每個區域強制執行此設定。如有其他發現,我會更新本文。

 

 

 

這是翻譯後的部落格文章。英文原文請參閱 Hiding Default Authentication Providers in SharePoint 2010