ユーザー選択ウィンドウのカスタム クレーム プロバイダー (SharePoint Server 2010)

 

適用先: SharePoint Foundation 2010, SharePoint Server 2010

トピックの最終更新日: 2016-11-30

クレームは、ユーザーの ID に関する情報 (名前、電子メール アドレス、グループ メンバーシップなど) で構成されます。Microsoft SharePoint Server 2010 のクレーム プロバイダーはクレームを発行し、そのクレームは SharePoint Server 2010 によってユーザーのセキュリティ トークンにパッケージされます。ユーザーが SharePoint Server 2010 にサインインすると、そのユーザーのトークンが検証され、SharePoint Server 2010 へのサインインに使用されます。クレーム プロバイダーは、ユーザー選択ウィンドウ コントロール内の [ユーザーとグループの選択] ダイアログ ボックスのユーザー インターフェイスに表示されます。クレーム プロバイダーは、SharePoint Server 2010 で権限がアイテム (リスト、ライブラリ、サイトなど) に割り当てられている場合に、ユーザー、グループ、およびクレームを検索して選択するための機能を提供します。ユーザー選択ウィンドウ コントロールの詳細については、「ユーザー選択ウィンドウの概要 (SharePoint Server 2010)」を参照してください。

この記事では、クレーム プロバイダーの用途と利点、アーキテクチャ、カスタム クレーム プロバイダーに関する特別な考慮事項、およびクレーム プロバイダーの計画方法について説明します。カスタム クレーム プロバイダーの作成方法や構成方法については説明しません。カスタム クレーム プロバイダーの作成方法については、「クレームの方法」(https://go.microsoft.com/fwlink/?linkid=207578&clcid=0x411) および「Creating Custom Claims Providers in SharePoint 2010 (英語)」(https://go.microsoft.com/fwlink/?linkid=211324&clcid=0x411) (英語) を参照してください。

この記事を読む前に、「認証方法を計画する (SharePoint Server 2010)」および「The Role of Claims (英語)」(https://go.microsoft.com/fwlink/?linkid=208326&clcid=0x411) (英語) で説明している概念を理解しておく必要があります。クレーム ベース認証の詳細については、「SharePoint クレームベース ID」(https://go.microsoft.com/fwlink/?linkid=196647&clcid=0x411) および「A Guide to Claims-based Identity and Access Control (英語)」(https://go.microsoft.com/fwlink/?linkid=187911&clcid=0x411) (英語) を参照してください。

この記事の内容

  • 用途と利点

  • アーキテクチャ

  • カスタム クレーム プロバイダーについて

  • カスタム クレーム プロバイダーの展開と構成

  • 複数のファームでのカスタム クレームの使用

  • カスタム クレーム プロバイダーに関する考慮事項

用途と利点

SharePoint Server 2010 のクレーム プロバイダーを使用する主な理由は次の 2 つです。

  • クレームを強化するため

  • 名前解決を実行するため

クレーム プロバイダーは、強化の役割として、サインイン時に追加のクレームを使用してユーザー トークンを強化します。クレームの強化の詳細については、「クレーム プロバイダー」(https://go.microsoft.com/fwlink/?linkid=207579&clcid=0x411) を参照してください。

選択の役割として、ユーザー選択ウィンドウにおけるユーザー、グループ、およびクレームの一覧表示、解決、検索、および "わかりやすい" 表示の決定を、クレーム プロバイダーが行います。クレームの選択機能により、SharePoint サイトや SharePoint サービスのセキュリティを構成する場合などに、アプリケーションでユーザー選択ウィンドウにクレームを表示することができます。ユーザー選択ウィンドウの詳細については、「ユーザー選択ウィンドウの概要 (SharePoint Server 2010)」を参照してください。

クレーム プロバイダーは SharePoint Server 2010 に含まれていますが、独自のカスタム クレーム プロバイダーを作成して、ユーザーのセキュリティ トークンに追加のクレームを提供したり、クレームの追加のソースに接続したりすることもできます。たとえば、Active Directory のユーザー リポジトリにはないロールを備えている CRM アプリケーションを使用できる場合は、カスタム クレーム プロバイダーを作成し、そのデータベースに接続して、CRM ロール データをユーザーの元のクレーム トークンに追加することができます。クレーム プロバイダーの使用シナリオの詳細については、「クレーム プロバイダー」(https://go.microsoft.com/fwlink/?linkid=207579&clcid=0x411) を参照してください。

アーキテクチャ

クレーム ベース認証を使用するように Web アプリケーションが構成されている場合、SharePoint Server 2010 で、次の 2 つの既定のクレーム プロバイダーが自動的に使用されます。

また、Web アプリケーションのゾーンに対して選択された認証方法によっては、SharePoint Server 2010 で、次の表に記載されている既定のクレーム プロバイダーが 1 つ以上使用されます。

認証方法 クレーム プロバイダー

Windows 認証

SPActiveDirectoryClaimProvider (英語) (https://go.microsoft.com/fwlink/?linkid=208325&clcid=0x411) (英語)

フォーム ベース認証

SPFormsClaimProvider (英語) (https://go.microsoft.com/fwlink/?linkid=210013&clcid=0x411) (英語)

SAML (Security Assertion Markup Language) トークン ベース認証

SPTrustedClaimProvider (英語) (https://go.microsoft.com/fwlink/?linkid=210014&clcid=0x411) (英語)

これらのクレーム プロバイダーは、ユーザー選択ウィンドウの [ユーザーとグループの選択] ダイアログ ボックスに表示されます。ファームのクレーム プロバイダーの一覧を表示するには、Windows PowerShell の Get-SPClaimProvider コマンドレットを使用します。

注意

SAML トークン ベース認証を使用するように Web アプリケーションが構成されている場合、ユーザー選択ウィンドウ コントロールに対する検索機能が SPTrustedClaimProvider クラスで提供されません。ユーザー選択ウィンドウ コントロールで入力されたテキストは、有効なユーザー、グループ、またはクレームであるかどうかにかかわらず、解決済みであるかのように自動的に表示されます。SharePoint Server 2010 ソリューションで SAML トークン ベース認証を使用する場合、独自の検索、名前解決を実装するカスタム クレーム プロバイダーの作成を計画してください。

クレーム プロバイダーは、ファームに展開されている機能として、サーバー ファームに登録されます。この機能の対象範囲はファーム レベルです。各クレーム プロバイダー オブジェクトは、SPClaimProviderDefinition クラスを使用して、クレーム プロバイダーに関する情報 (表示名、説明、アセンブリ、種類など) を追加します。SPClaimProviderDefinition クラスの重要なプロパティは、IsEnabled と IsUsedByDefault の 2 つです。これらのプロパティによって、登録されているクレーム プロバイダーをファーム内で使用できるかどうか、および特定のゾーン内でクレーム プロバイダーが既定で使用されるかどうかが決まります。既定では、サーバー ファームに展開されているクレーム プロバイダーは、すべて有効になっています。SPClaimProviderDefinition クラスの詳細については、「SPClaimProviderDefinition Class (英語)」(https://go.microsoft.com/fwlink/?linkid=207595&clcid=0x411) (英語) を参照してください。

ゾーンと認証の詳細については、「認証方法を計画する (SharePoint Server 2010)」を参照してください。

カスタム クレーム プロバイダーの記述方法については、「Creating Custom Claims Providers in SharePoint 2010 (英語)」(https://go.microsoft.com/fwlink/?linkid=211324&clcid=0x411) (英語) および「クレームに関するチュートリアル: SharePoint 2010 のクレーム プロバイダーを記述する」(https://go.microsoft.com/fwlink/?linkid=207589&clcid=0x411) を参照してください。既定のクレーム プロバイダーを上書きする方法については、「How to Override the Default Name Resolution and Claims Provider for SharePoint 2010 (英語)」(https://go.microsoft.com/fwlink/?linkid=207591&clcid=0x411) (英語) を参照してください。

カスタム クレーム プロバイダーについて

既定では、クエリの実行時にユーザー選択ウィンドウで解決される情報は、クレーム プロバイダーで指定された情報に依存します。指定された情報、および既定のクレーム プロバイダーを使用している場合にその情報を表示する方法を変更することはできません。これを行うには、ユーザーが権限をアイテム (サイト、リスト、ライブラリなど) に割り当てる際にユーザー、グループ、およびクレームを検索して選択するためのソリューションのニーズを満たすカスタム クレーム プロバイダーを開発者が作成する必要があります。

たとえば、Web アプリケーションで SAML 認証を使用し、Active Directory によってユーザーの解決も行う場合は、カスタム クレーム プロバイダーを作成する必要があります。クレーム プロバイダーの使用シナリオのその他の例については、「クレーム プロバイダー」(https://go.microsoft.com/fwlink/?linkid=207579&clcid=0x411) を参照してください。

カスタム クレーム プロバイダーを作成すると、表示される情報や、ユーザー選択ウィンドウ コントロールから返されるクエリ結果を制御できます。既定では、クレーム認証を使用するように Web アプリケーションを構成し、サーバーでクレーム プロバイダーを登録します。

注意

ユーザー選択ウィンドウの [ユーザーとグループの選択] ダイアログ ボックスでのクレーム プロバイダーの表示順序は制御することができません。

カスタム クレーム プロバイダーの記述方法については、「[方法] クレーム プロバイダーを作成する」(https://go.microsoft.com/fwlink/?linkid=207588&clcid=0x411) および「クレームに関するチュートリアル: SharePoint 2010 のクレーム プロバイダーを記述する」(https://go.microsoft.com/fwlink/?linkid=207589&clcid=0x411) を参照してください。既定のクレーム プロバイダーを上書きする方法については、「How to Override the Default Name Resolution and Claims Provider for SharePoint 2010 (英語)」(https://go.microsoft.com/fwlink/?linkid=207591&clcid=0x411) (英語) を参照してください。

カスタム クレーム プロバイダーの展開と構成

既定では、カスタム クレーム プロバイダーをファームで登録するときには、IsEnabled プロパティと IsUsedByDefault プロパティの両方が True に設定されます。IsUsedByDefault プロパティが False に設定されている場合を除き、すべてのゾーンのユーザー選択ウィンドウの [ユーザーとグループの選択] ダイアログ ボックスにカスタム クレーム プロバイダーが表示されます。SharePoint Server 2010 ソリューションで必要とされるゾーン数、各ゾーンで使用される認証方法、および各ゾーンのユーザーによっては、ユーザー選択ウィンドウに表示されるカスタム クレーム プロバイダーのゾーンを制限しなければならない場合があります。

クレーム プロバイダーは、対象範囲がファーム レベルで、ゾーン レベルで有効化されるため、カスタム クレーム プロバイダーを表示するゾーンを慎重に計画する必要があります。通常は、IsUsedByDefault プロパティが False に設定されていることを確認して、カスタム クレーム プロバイダーを使用するゾーンごとに SPIisSettings クラスを構成する必要があります。選択したゾーンのカスタム クレーム プロバイダーを構成するには、SPIisSettings.ClaimsProviders プロパティを使用してゾーンのクレーム プロバイダーを設定する Windows PowerShell スクリプトを作成するか、または、選択したゾーンのカスタム クレーム プロバイダーを有効にするためのカスタム アプリケーションを作成します。SPIisSettings.ClaimsProvider プロパティの詳細については、「SPIisSettings.ClaimsProvider Property (英語)」(https://go.microsoft.com/fwlink/?linkid=207597&clcid=0x411) (英語) を参照してください。選択したゾーンのクレーム プロバイダーを構成するためのカスタム アプリケーションを作成する方法については、TechNet のブログ投稿「Configuring a Custom Claims Provider to be Used only on Select Zones in SharePoint 2010 (英語)」(https://go.microsoft.com/fwlink/?linkid=207592&clcid=0x411) (英語) を参照してください。

たとえば、2 つの Web アプリケーションがあるシナリオを考えてみます。1 つ目の Web アプリケーションである PartnerWeb には、2 つのゾーン (Windows クレーム ベース認証を使用するイントラネットと、フォーム ベース認証を使用するエクストラネット) があります。PartnerWeb は、従業員とパートナーの間の共同作業用に使用されています。2 つ目の Web アプリケーションである PublishingWeb には、フォーム ベース認証を使用するゾーンが 1 つだけあります。PublishingWeb は、従業員、ビジネス パートナー、および顧客パートナー用のインターネット発行サイトです。ここで、PartnerWeb のエクストラネット ゾーンについて、従業員をビジネス パートナーと共同作業できるようにし、顧客パートナーとは共同作業できないようにするものとします。このようにするには、現在のユーザーがビジネス パートナーか顧客パートナーかをユーザーの ID に基づいて判断するカスタム クレーム プロバイダーを記述します。この例では、fabrikam.com のユーザーはビジネス パートナーで、contoso.com のユーザーは顧客パートナーです。ビジネス パートナーのユーザーが PartnerWeb Web アプリケーションで認証された場合は、BusinessPartner というロール クレームがクレーム トークンに追加されるのに対し、顧客パートナーが認証された場合は、CustomerPartner というロール クレームがクレーム トークンに追加されます。顧客パートナーがエクストラネットのグループ作業サイトに追加されないようにするには、CustomerPartner というロール クレームを持っているユーザーへのアクセスを明示的に拒否する Web アプリケーション ポリシーを、エクストラネット ゾーンの PartnerWeb Web アプリケーションで追加します。また、カスタム クレーム プロバイダーは、Web アプリケーション ポリシーに対する検索および入力のサポートを実装し、Web アプリケーション ポリシーに追加できるように CustomerPartner ロール クレームを解決する必要があります。最後に、エクストラネット ゾーンでこの機能を有効にするには、カスタム クレーム プロバイダーを使用するゾーンに対して SPIisSettings クラスを構成します。次の図に、各 Web アプリケーションおよびゾーンの認証方法とクレーム プロバイダーの設定を示します。

SPIisSettings の図

注意

サーバーの全体管理 Web サイトでは、IsUsedByDefault プロパティが True に設定されているかどうかにかかわらず、ユーザー選択ウィンドウの [ユーザーとグループの選択] ダイアログ ボックスにすべてのクレーム プロバイダーが表示されます。

IsUsedByDefault プロパティを設定するには、カスタム クレーム プロバイダー用に作成したフィーチャー レシーバーで構成します。フィーチャー レシーバーを使用してカスタム クレーム プロバイダーを展開する方法については、「サンプル: クレーム プロバイダーを展開するフィーチャー レシーバー」(https://go.microsoft.com/fwlink/?linkid=207590&clcid=0x411) を参照してください。

また、IsEnabled プロパティおよび IsUsedByDefault プロパティの設定を上書きするには、Windows PowerShell の Set-SPClaimProvider コマンドレットを使用します。

重要

IsEnabled プロパティを False に変更すると、サーバー ファーム全体のクレーム プロバイダーが無効になります。このことが、カスタム クレーム プロバイダーが原因で発生した可能性がある問題をトラブルシューティングする必要がある場合に役立つこともありますが、通常は、IsEnabled プロパティは True に設定する必要があります。

複数のファームでのカスタム クレームの使用

クレームの値は、クレーム自体、クレーム プロバイダー名、およびサーバーにクレーム プロバイダーがインストールされた順序の組み合わせです。そのため、複数のファームまたは環境にまたがってクレームを使用する場合は、クレームを使用する各ファームで、同じ順序でクレーム プロバイダーをインストールする必要があります。あるファームにカスタム クレーム プロバイダーがインストールされており、追加のファームで同じクレームを使用する場合は、次の手順を使用します。

  1. クレーム プロバイダーが最初のファームで登録されたのと同じ順序で、追加のファームでクレーム プロバイダーを登録します。

  2. 最初のファームのバックアップを実行します。ファームをバックアップする方法については、「ファームをバックアップする (SharePoint Server 2010)」を参照してください。

  3. 最初のファームのバックアップを使用して、他のファームを復元します。ファームを復元する方法については、「ファームを復元する (SharePoint Server 2010)」を参照してください。

カスタム クレーム プロバイダーに関する考慮事項

SharePoint ソリューションで、ユーザー選択ウィンドウと共に使用するカスタム クレーム プロバイダーを計画する際は、以下の点を考慮してください。

  • Web アプリケーションのゾーン、および各ゾーンで使用されている認証方法は何か。

  • 詳細なセキュリティ シナリオを有効にするためにユーザーに追加する必要があるカスタム クレームがあるか。

  • 信頼できる ID プロバイダーで SAML 認証を使用するか。

  • ユーザー選択ウィンドウのクエリ結果に表示されるユーザーおよびロールの値のソースは何か。

  • [ユーザーとグループの選択] ダイアログ ボックスで解決する必要があるクレーム データは何か。

SharePoint Server 2010 Content Publishing チームは、この記事の作成に協力していただいた Steve Peschka 氏に感謝の意を表します。Peschka 氏のブログには、ここ (英語) (https://go.microsoft.com/fwlink/?linkid=210274&clcid=0x411) (英語) からアクセスできます。

See Also

Concepts

認証方法を計画する (SharePoint Server 2010)