隐藏 SharePoint 2010 中的默认身份验证提供程序
原文发布于 2011 年 5 月 8 日(星期日)
SharePoint 2010 中较常出现的一种情况是单个区域用于多个身份验证提供程序。用户这样做的原因之一是想使用某种类型的声明身份验证 - 如 FBA 或 SAML - 但他们还想添加 Windows 声明,以便 SharePoint 爬网程序可以对该区域建立索引。这种行为会带来双重问题:
- 用户会看到一个登录页面,他们需要从中选择 Windows 或其他某种身份验证类型
- 当用户被添加到一个网站(或确实执行了任何调用人员选取器的操作)时,他们将在选取器结果中看到 Active Directory 用户以及他们所使用的声明身份验证提供程序的用户。
那么,我们能做什么呢?为了更好地解决第一个问题,我们可以编写一个自定义登录选择页面。我已经在我的文章中介绍了此方案(请参见 https://blogs.msdn.com/b/sharepoint_chs/archive/2011/06/24/sharep-oint2010.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()
要注意几件事:
- PowerShell 命令 Get-SPClaimProvider 实际返回一个 SPClaimProviderDefinition,所以您做得没错。
- 将使用“AD”身份,因为那是 Active Directory 提供程序的内部名称。
我的测试很有限,我甚至不必在完成此更改后执行 IISRESET。我刚好能够进入,而在人员选取器左窗格的身份验证提供程序列表中,不再显示 Active Directory。相反,当我把它改回去后,Active Directory 又马上再次出现,且不经过 IISRESET。
目前,此方法的最大限制在于它不出现,您可以针对每个区域强制实施此设置,这是理想情况。如果我找到别的好办法,我会更新此文。
这是一篇本地化的博客文章。请访问 Hiding Default Authentication Providers in SharePoint 2010 以查看原文