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)