2013-04-17 64 views
1

我有一個使用基於聲明的身份驗證設置的SharePoint(2010)Web應用程序,它具有兩個聲明提供程序(Azure ACS和ADFS)。從SP中央管理 - >管理Web應用程序 - >用戶策略 - >添加用戶,我可以搜索不同身份提供者中的用戶(我相信這個控件被稱爲「人員選擇器」)。SharePoint:如何使用PowerShell解決/搜索索賠?

是否可以使用與PowerShell中的人員選取器類似的功能?

原則上,我需要的是這樣的:

$claim = Resolve-Claim "[email protected]" 

這將返回「完全合格」的用戶名(包括權利要求前綴),例如 i:05.t | acs | [email protected],通過搜索所有添加到SharePoint的聲明提供程序。

這可能嗎?或者至少,是否有可能列舉索賠提供者,並分別進行檢索(這也是可以接受的)?

+0

與論壇網站不同,我們不使用「謝謝」或「任何幫助表示讚賞」,或在[so]上簽名。請參閱「[應該'嗨','謝謝',標語和致敬從帖子中刪除?](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be -removed-from-posts)。 –

+0

注意。謝謝你的提醒。 – Hallgeir

回答

1

我找到某種解決方案...

$claimManager = New-Object Microsoft.SharePoint.Administration.Claims.SPClaimProviderManager 

$providers = @() 

foreach ($cp in $claimManager.TrustedClaimProviders) 
{ 
    $providers += $cp 
} 
$provider = $providers[0] 
$userId = $provider.Search("http://localhost", $null, $UserName, $null, 1).Children[0].EntityData[0].Key 

這種解決方案的主要問題:

商經歷如Azure ACS實際上不搜索用戶標識是否存在,但只是返回一個聲明。這給了我這個ID提供者的前綴,但我不知道它是否有效,因此我不知道是否應該繼續搜索其他ID提供者,或者我是否應該停止。

但我不確定這是否是ACS中的配置問題,或者它是SharePoint中標識提供程序的搜索方法實施的固有弱點。