SharePoint のクレーム プロバイダーを作成する

クレーム拡張およびクレーム選択の要件を満たす SharePoint クレーム プロバイダーを作成および実装する方法を説明します。

クレーム プロバイダーはクレームを発行し、セキュリティ トークンにパッケージ化します。 クレーム プロバイダーには、拡張と選択の 2 つのロールがあります。

クレーム拡張により、アプリケーションが追加のクレームをユーザーのトークンに拡張できます。 たとえば、Windows ベースのログインでは、Active Directory ディレクトリ サービスがすべてのユーザーのセキュリティ グループをユーザーの Windows トークンに拡張できます。 クレーム ベースのログインでは、カスタマー リレーションシップ マネジメント (CRM) アプリケーションが CRM からロールを拡張できます。 これらのクレームをユーザーのトークンに含めることで、そのクレームに対してリソースを承認できます。 つまり、これらのクレームを使用して、特定のユーザーが特定のリソースにアクセスできるかどうかを決定できます。 クレームをユーザー選択ウィンドウ コントロールに表示するには、クレーム選択を使用します。 クレーム選択を使用すると、たとえば、SharePoint サイトまたは SharePoint サービスのセキュリティを構成しているときに、アプリケーションのユーザー選択ウィンドウにクレームを表示できます。 この機能により、クレームの検索、解決、およびわかりやすい表示を提供することができます。

注:

クレーム選択機能を備えたユーザー選択ウィンドウは、"クレーム選択" と呼ばれることがあります。 詳細については、「Peopleピッカーと要求プロバイダーの計画」を参照してください。

クレーム プロバイダーを記述するには、まず、SPClaimProvider クラスから派生するクラスを作成します。

ヒント:SPClaimProvider クラスとそのメンバーに関するコード例と詳細については、「SPClaimProvider」を参照してください。 ウォークスルー、ヒント、およびコード サンプルについては、「クレームとセキュリティ: 技術記事」を参照してください。

必須の実装

クレーム プロバイダーを記述するときの必須のメソッドとプロパティを次に示します。

必須

次の Name プロパティは必須プロパティです。 名前は、ファーム全体で一意である必要があります。


public abstract String Name

クレーム選択における必須要素

クレームをユーザー選択ウィンドウ コントロールに表示するには、クレーム選択を使用します。 ユーザー 選択コントロールで要求の選択を実装する場合は、 SPClaimProvider クラスの次のメソッドが必要です。


protected abstract void FillSchema(SPProviderSchema schema);
     protected abstract void FillClaimTypes(List<String> claimTypes);
     protected abstract void FillClaimValueTypes(List<String> claimValueTypes);
     protected abstract void FillEntityTypes(List<String> entityTypes);

クレーム拡張における必須要素

追加のクレームをユーザーのセキュリティ トークンに含めることで、クレームを拡張します。 要求を拡張する場合は、 SPClaimProvider クラスに次のメソッドを実装する必要があります。


public abstract bool SupportsEntityInformation
      protected abstract void FillClaimsForEntity(Uri context, SPClaim entity, List<SPClaim> claims);

クレーム選択の左ウィンドウに階層を表示するための必須要素

要求ピッカーの左側のウィンドウに階層を表示する場合は、 SPClaimProvider クラスに次のメソッドを実装する必要があります。


public abstract bool SupportsHierarchy
     protected abstract void FillHierarchy(Uri context, String[] entityTypes, String hierarchyNodeID, int numberOfLevels, bool includeEntityData, SPProviderHierarchyTree hierarchy);

クレーム選択の入力コントロールでクレームを解決するための必須要素

要求ピッカーの型指定コントロールを使用して要求を解決できるようにするには、 SPClaimProvider クラスに次のメソッドを実装する必要があります。


public abstract bool SupportsResolve
     protected abstract void FillResolve(Uri context, String[] entityTypes, String resolveInput, List<PickerEntity> resolved);
     protected abstract void FillResolve(Uri context, String[] entityTypes, SPClaim resolveInput, List<PickerEntity> resolved);

クレーム選択でクレームを検索するための必須要素

要求ピッカーで要求を検索できるようにするには、 SPClaimProvider クラスに次のプロパティとメソッドを実装する必要があります。


public abstract bool SupportsSearch
     protected abstract void FillSearch(Uri context, String[] entityTypes, String searchPattern, String hierarchyNodeID, int maxCount, SPProviderHierarchyTree searchTree);

便利なヘルパー メソッド

また、SPClaim オブジェクトの作成に役立つヘルパー メソッドを実装することもできます。

SPClaim オブジェクトの作成に役立つヘルパー メソッド

SPClaim オブジェクトの作成に役立つヘルパー メソッドを次に示します。


protected SPClaim CreateClaim(String claimType, String value, String valueType)

関連項目