SharePoint 2010 での既定の認証プロバイダーの非表示

原文の記事の投稿日: 2011 年 5 月 8 日 (日曜日)

SharePoint 2010 で非常によく見られるシナリオは、1 つのゾーンを複数の認証プロバイダーに使用することです。このようなことが行われる理由の 1 つは、FBA や SAML のような種類のクレームの認証を使用するだけでなく、ゾーンを SharePoint クローラーでインデックス付けできるように Windows クレームも追加したいことにあります。このアプローチに関する問題は次の 2 つです。

  1. ログイン選択ページを表示し、ユーザーはそこで Windows 認証またはその他の種類の認証のどちらかを選択する必要があります。
  2. ユーザーをサイトに追加すると (または、ユーザー選択ウィンドウを呼び出す操 作が実際に実行されると)、選択ウィンドウの結果に Active Directory ユーザーと、それらのユーザーが使用しているクレーム認証プロバイダーのユーザーが表示されます。

それでは、どうしたらよいでしょうか。まず、1 つ目の問題を解決するには、カスタムのログイン選択ページを作成できます。このシナリオについては、既に以前の投稿 http://blogs.msdn.com/b/sharepoint_jp/archive/2011/06/28/bypassing-the-multi-authentication-provider-selection-page-in-sharepoint-2010.aspx で説明しました。しかし、ユーザー選択ウィンドウの検索結果に AD ユーザーを表示させないという 2 つ目の問題はどうでしょうか。これには 2011 年 4 月の CU が役立ちます。 <クイック メモ: 4 月の CU ではこれに関する問題が発生することがあります。6 月の CU は更新バージョンです。有用性が異なる可能性があるので、自由にテストしてください。>  CU を適用すると、SPClaimProviderDefinitions に新しい "IsVisible" というプロパティが含まれていることがわかります。Active Directory プロバイダーに対してこのプロパティを false に設定するだけで、ユーザー選択ウィンドウを使用したときに Active Directory プロバイダーは表示されなくなります。

次に、この方法を示す簡単な PowerShell スニペットを紹介します。

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

注意すべきことが 2 つあります。

  1. PowerShell コマンド Get-SPClaimProvider は、実際には SPClaimProviderDefinition を返すので、問題ありません。
  2. ID として "AD" を使用しています。これは、Active Directory プロバイダーの内部名です。

私の限られたテストでは、この変更を加えた後で IISRESET を実行する必要はありませんでした。ログインでき、ユーザー選択ウィンドウの左側の認証プロバイダーの一覧に Active Directory は表示されなくなりました。反対に、変更を戻すと、IISRESET を実行しなくてもすぐに再び表示されるようになりました。

今のところ、この方法に関する最大の限界は、理想的であるゾーン単位ベースではこの設定を適用できないようだ、ということです。他の方法でこの点を解決したら、この投稿を更新します。

 

 

 

これはローカライズされたブログ投稿です。原文の記事は、「Hiding Default Authentication Providers in SharePoint 2010」をご覧ください。