Business Data Connectivity Service の認証

最終更新日: 2010年4月15日

適用対象: SharePoint Server 2010

この記事の内容
バックエンド認証
中間層認証
UserContextFilter を使用するバックエンド認証
アクセス制御された、個別にセキュリティ保護可能なメタデータ オブジェクト
権限の概要

バックエンド認証と中間層認証の 2 つの認証パターンのどちらかを使用して、Microsoft Business Connectivity Services (BCS) によって管理されるデータへのユーザー アクセスを制御できます。

バックエンド認証

バックエンド サーバーがユーザーごとの認証を実行できる場合、バックエンド認証を使用してユーザー アクセスを制御できます。バックエンド認証は、次の状況で使用できます。

  • 認証のため偽装および委任モデルを使用し、バックエンド サーバーでユーザーごとの認証を使用している場合。偽装および委任モデルでは、クライアントは中間層に認証を委任し、中間層はクライアントを偽装して、そのクライアントに代わってバックエンド サーバーに対して認証を行います。ただし、バックエンド サーバーがユーザーごとの認証をサポートしない場合は、このトピックで後述する他の認証機構を使用する必要がある場合があります。

  • バックエンド サーバーがユーザーごとの認証をサポートし、アプリケーション レベルの認証を使用しており、ユーザー名を Username フィルタに渡す場合。

  • バックエンド サーバーが接続プールまたはその他のパフォーマンス上の利点を提供する場合。

中間層認証

信頼されたサブシステム認証モデルでは、中間層はバックエンド サーバーに対し固定 ID として認証を行うため、バックエンド サーバーがユーザーの ID を知ることはありません。このため、この認証モデルを使用する場合、サーバーは各ユーザーを認証できないので、バックエンド サーバーがユーザーごとの認証をサポートする場合であっても、バックエンド認証を使用することはできません。

このような場合は、代わりに Business Data Connectivity (BDC) service の中間層認証を使用します。BDC は、中間層でユーザーごとの認証を実行するように設計されています。この認証モデルには次の利点があります。

  • データベース接続プール。

  • 単一の認証モデル。

  • バックエンド サーバーでユーザーごとの認証が行われない場合のシナリオのサポート。

  • 詳細なアクセス制御。BDC を使用して、次のレベルでアクセス制御リスト (ACL) を設定できます。

    • MetadataCatalog   これは BDC のトップレベル オブジェクトです。BDC でモデルをインポートまたはエクスポートできるユーザーを制御します。

    • LobSystem

    • Entity

    • Method

    • MethodInstance

    また、BDC でエンティティのさまざまなビューを使用できるため、ユーザーが表示できるフィールドを制御できます。

UserContextFilter を使用するバックエンド認証

UserContextFilter フィルターは、現在のユーザー名をバックエンド メソッド呼び出しに追加するように BDC に指示します。バックエンド メソッドは、このユーザー名を使用してユーザーのアクセスをチェックしたり、現在のユーザーのコンテキストでバックエンド サーバーから返されるエンティティ インスタンスを制限したりします。

この機能は、ライセンスまたは接続プールなどの理由により、バックエンド アプリケーションが認証情報を持たないか、認証情報を使用しない場合に特に役立ちます。このような場合、グループ アカウントを使用して認証を行い、渡されたユーザー名を使用してデータへのアクセスを確認し、制御することができます。

UserContext フィルターを使用する別のシナリオとしては、メタデータの作成者が、ユーザーが制御可能なフィルターとしてユーザー名をとり、機密の個人情報を返すメタデータを作成する場合が考えられます。この場合、ユーザーは別のユーザーのデータを表示できます。この問題を回避するために、UserContext フィルターを使用して、ユーザー名をメソッド呼び出しに渡すことができます。

注意

UserContext フィルタはセキュリティで保護され、フィルタの値は上書きできません。

Windows ユーザーの場合、BDC は domainname\username 形式で System.Security.Principal.WindowsPrincipal.Identity プロパティを渡します。

アクセス制御された、個別にセキュリティ保護可能なメタデータ オブジェクト

メタデータ オブジェクトの BDC 階層内の各オブジェクト (Application、Entity、Method、MethodInstance、Parameter、TypeDescriptor など) は、各プリンシパルがオブジェクトに対してどの権限を持つかを指定する ACL を備えています。13 種類のメタデータ オブジェクトのうち、LobSystem、Entity、Method、および MethodInstance だけが独自の個別に制御可能な ACL を備えています。これらのオブジェクトは、個別にセキュリティ保護可能なメタデータ オブジェクトと呼ばれます。その他のメタデータ オブジェクトは、直接上の親から ACL を継承し、アクセス制御されたメタデータ オブジェクトと呼ばれます。

権限の概要

次の表は、管理者または "権限の管理" 権限を持つユーザーが BDC アプリケーションに設定できる権限を示しています。

重要重要

BDC でユーザーのアクセス許可を変更した場合は、それらに対して再度クロールを実行し、ビジネス データを検索できるようにする必要があります。これは、ACL はデータと一緒にクロールされるので、変更した場合は最新の状態にする必要があるためです。

表 1. BDC アプリケーションで設定できる権限の概要

権限

適用先

説明

編集

アクセス制御されるメタデータ オブジェクト

  • オブジェクトの更新

  • オブジェクトの削除

  • 子オブジェクトの作成

  • プロパティの追加

  • プロパティの削除

  • プロパティのクリア

  • ローカライズされた表示名の追加

  • ローカライズされた表示名の削除

  • ローカライズされた表示名のクリア

権限の設定

個別にセキュリティ保護可能なメタデータ オブジェクト

  • 権限の設定

  • 子への権限のコピー

実行 (表示)

MethodInstance

  • さまざまなランタイム API 呼び出しを使用する MethodInstance オブジェクトの実行

クライアントで選択可能

アプリケーションとエンティティ

  • Web パーツおよびリストで使用

  • 選択時に表示