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

 

適用先: SharePoint Foundation 2010

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

この記事では、クレーム プロバイダーの用途と利点、クレーム プロバイダーのアーキテクチャ、カスタム クレーム プロバイダーについての特別な考慮事項、およびカスタム クレーム プロバイダーの計画方法について説明します。カスタム クレーム プロバイダーの作成方法または構成方法については説明しません。カスタム クレーム プロバイダーの作成方法については、「Claims How Tos」(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 Foundation 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 Foundation 2010 でのクレーム プロバイダーは、主として次の 2 つの目的に使用されます。

  • クレームを拡張する

  • 名前の解決を提供する

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

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

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

アーキテクチャ

クレーム ベース認証を使用するように Web アプリケーションを構成すると、SharePoint Foundation 2010 は自動的に 2 つの既定のクレーム プロバイダーを使用します。

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

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

Windows 認証

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

フォームベース認証

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

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

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

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

注意

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

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

ゾーンと認証の詳細については、「認証方法を計画する (SharePoint Foundation 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 Foundation 2010 ソリューションに必要なゾーンの数、各ゾーンで使用されている認証方法、および各ゾーンのユーザーによっては、ユーザー選択ウィンドウにカスタム クレーム プロバイダーが表示されるゾーンを制限することが必要になる場合があります。

クレーム プロバイダーは対象範囲がファーム レベルであり、ゾーン レベルで有効になるので、カスタム クレーム プロバイダーが表示されるゾーンを慎重に計画する必要があります。一般には、IsUsedByDefault プロパティが False に設定されていることを確認した後、カスタム クレーム プロバイダーを使用する各ゾーンに対して SPIisSettings クラスを構成します。選択したゾーンに対してカスタム クレーム プロバイダーを構成するには、SPIisSettings.ClaimsProviders プロパティを使用してゾーンにクレーム プロバイダーを設定する Windows PowerShell スクリプトを作成するか、またはカスタム アプリケーションを作成して選択ゾーンに対してカスタム クレーム プロバイダーを有効にします。SPIisSettings.ClaimsProvider プロパティの詳細については、「SPIisSettings.ClaimsProvider Property (英語)」(https://go.microsoft.com/fwlink/?linkid=207597&clcid=0x411) (英語) を参照してください。選択ゾーンに対してクレーム プロバイダーを構成するカスタム アプリケーションを作成する不法については、「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 アプリケーションがあるシナリオを考えます。最初の Web アプリケーション PartnerWeb には 2 つのゾーンがあります。1 つは Windows クレーム ベース認証を使用するイントラネットで、もう 1 つは フォーム ベース認証を使用するエクストラネットです。これは、従業員とパートナーの間の共同作業に使用されます。2 番目の Web アプリケーション PublishingWeb にはフォーム ベース認証を使用する 1 つのゾーンがあり、従業員、ビジネス パートナー、顧客パートナーに対するインターネット公開サイトです。PartnerWeb のエクストラネット ゾーンでは、従業員はビジネス パートナーとは共同作業できても、顧客パートナーとはできないようにする必要があります。そのためには、ユーザーの ID に基づいて現在のユーザーがビジネス パートナーか顧客パートナーかを特定するカスタム クレーム プロバイダーを作成します。この例では、fabrikam.com のユーザーはビジネス パートナーで、contoso.com のユーザーは顧客パートナーです。ビジネス パートナーであるユーザーが PartnerWeb Web アプリケーションで認証されると、BusinessPartner という名前の役割に対するクレームがクレーム トークンに追加されます。顧客パートナーが認証されると、CustomerPartner という名前の役割に対するクレームがクレーム トークンに追加されます。顧客パートナーがエクストラネットの共同作業サイトに追加されないようにするため、CustomerPartner という名前の役割に対するクレームを持っているユーザーのアクセスを明示的に拒否する Web アプリケーション ポリシーを、エクストラネット ゾーン用の PartnerWeb Web アプリケーションに追加します。また、カスタム クレーム プロバイダーでは、CustomerPartner 役割クレームを Web アプリケーション ポリシーに追加できるように解決するために、Web アプリケーション ポリシーに対する検索と入力のサポートを実装する必要もあります。最後に、エクストラネット ゾーンでこの機能を有効にするため、そのゾーンの SPIisSettings クラスを、カスタム クレーム プロバイダーを使用するように構成します。次の図では、各 Web アプリケーションとゾーンに対する認証方法とクレーム プロバイダーの設定を示します。

SPIisSettings の図

注意

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

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

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

重要

IsEnabled プロパティを False に変更すると、サーバー ファーム全体でそのクレーム プロバイダーが無効になります。これは、カスタム クレーム プロバイダーによって発生する問題をトラブルシューティングする必要がある場合に便利です。ただし、通常は、IsEnabled プロパティを True に設定しておく必要があります。

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

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

  1. 最初のファームに登録したときと同じ順序で、別のファームにクレーム プロバイダーを登録します。

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

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

カスタム クレーム プロバイダーの考慮事項

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

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

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

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

  • ユーザー選択ウィンドウのクエリ結果で表示されるユーザーと役割の値のソースは何か。

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

SharePoint Foundation 2010 Content Publishing チームは、この記事に関して Steve Peschka に感謝します。彼のブログはここ (英語) (https://go.microsoft.com/fwlink/?linkid=210274&clcid=0x411) (英語) で見ることができます。

See Also

Concepts

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