SharePoint での People Picker のカスタム要求プロバイダーの計画

適用対象:yes-img-13 2013yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

SharePoint Server に含まれている要求プロバイダーを使用することも、独自のカスタム 要求プロバイダーを作成して、要求の追加のソースに接続し、ユーザーのセキュリティ トークンに追加の要求を提供することもできます。 たとえば、Active Directory ドメイン サービス (AD DS) のユーザー リポジトリにはないロールを備えている顧客関係管理 (CRM) アプリケーションを使用できる場合は、カスタム クレーム プロバイダーを作成し、CRM データベースに接続して、CRM ロール データをユーザーの元のセキュリティ トークンに追加することができます。 クレーム プロバイダーの使用シナリオの詳細については、「SharePoint 2013 のクレーム プロバイダー」を参照してください。

SharePoint Server のクレーム プロバイダーは、要求を拡張し、名前解決を提供するために使用されます。 クレーム強化の役割では、クレーム プロバイダーはサインイン時に追加のクレームを使用してユーザー セキュリティ トークンを強化します。 クレーム強化の詳細については、「SharePoint 2013 のクレーム プロバイダー」を参照してください。 名前解決の役割では、クレーム プロバイダーはユーザー選択ウィンドウにおけるユーザー、グループ、クレームの一覧表示、解決、検索、および "わかりやすい" 表示の決定を行います。 クレームの選択機能により、SharePoint サイトや SharePoint サービスのセキュリティを構成する場合などに、アプリケーションでユーザー選択ウィンドウにクレームを表示することができます。 People Picker の詳細については、「 SharePoint でのユーザー 選択ウィンドウの計画」を参照してください。

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

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

この記事を読む前に、「SharePoint Server でユーザー認証方法を計画する」および「クレームの役割」で説明されている概念を理解しておく必要があります。 クレーム ベース認証の詳細については、「SharePoint 2013 でのクレームベース ID」および「クレームベース ID とアクセス制御の手引き (第 2 版)」を参照してください。

アーキテクチャ

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

  • SPSystemClaimProvider クラスは、SharePoint Server がインストールされているサーバー ファームに関連する要求情報を提供します。

  • SPAllUserClaimProvider クラスは、すべてのユーザー クレームを提供します。

Web アプリケーションのゾーンに対して選択された認証方法に応じて、SharePoint Server では表 1 に記載されている 1 つ以上の既定の要求プロバイダーも使用されます。

表 1. 認証方法と既定のクレーム プロバイダー

認証方法 クレーム プロバイダー
Windows 認証
SPActiveDirectoryClaimProvider
フォームベース認証
SPFormsClaimProvider
SAML (Security Assertion Markup Language) トークン ベース認証
SPTrustedClaimProvider

ファームのクレーム プロバイダーの一覧を表示するには、Microsoft PowerShell の Get-SPClaimProvider コマンドレットを使用します。

注:

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

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

領域と認証の詳細については、「SharePoint Server でユーザー認証方法を計画する」を参照してください。

カスタム クレーム プロバイダーの構成の例

既定では、カスタム クレーム プロバイダーをファームで登録するときには、IsEnabled プロパティと IsUsedByDefault プロパティの両方が True に設定されます。 SharePoint Server ソリューションに必要なゾーンの数、各ゾーンで使用される認証方法、および各ゾーンのユーザーに応じて、カスタム要求プロバイダーが People Picker に表示されるゾーンを制限できます。

クレーム プロバイダーは、対象範囲がファーム レベルで、ゾーン レベルで有効化されるため、カスタム クレーム プロバイダーを表示するゾーンを慎重に計画する必要があります。 通常は、IsUsedByDefault プロパティが False に設定されていることを確認して、カスタム クレーム プロバイダーを使用するゾーンごとに SPIisSettings クラスを構成する必要があります。 選択したゾーンのカスタム クレーム プロバイダーを構成するには、 ClaimsProviders() プロパティを使用してゾーンのクレーム プロバイダーを設定する PowerShell スクリプトを作成するか、または、選択したゾーンのカスタム クレーム プロバイダーを有効にするためのカスタム アプリケーションを作成します。

例として、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 アプリケーションおよびゾーンの認証方法とクレーム プロバイダーの設定を示します。

図 1. Web アプリケーションとゾーンの認証方法およびクレーム プロバイダーの設定の例

SPIisSettings の図

IsUsedByDefault プロパティを設定するには、カスタム クレーム プロバイダー用に作成したフィーチャー レシーバーで構成します。

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

重要

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

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

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

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

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

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

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

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

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

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

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

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

SharePoint Server コンテンツ発行チームは、この記事に投稿した Steve Peschka に感謝したいと考えています。 Steve Peschka 氏の TechNet ブログ「SharePoint に関する偶然の発見」をご覧ください。

関連項目

概念

ユーザー選択ウィンドウとクレーム プロバイダーの概要

SharePoint Server でユーザー認証方法を計画する