ビジネス データ カタログの認証
バックエンド認証と中間層認証の 2 つの認証パターンのどちらかを使用して、ビジネス データ カタログによって管理されるデータへのユーザー アクセスを制御できます。
バックエンド認証
バックエンド サーバーがユーザーごとの認証を実行できる場合、バックエンド認証を使用してユーザー アクセスを制御できます。バックエンド認証は、次の状況で使用できます。
認証のため偽装および委任モデルを使用し、バックエンド サーバーでユーザーごとの認証を使用している場合。偽装および委任モデルでは、クライアントは中間層に認証を委任し、中間層はクライアントを偽装して、そのクライアントに代わってバックエンド サーバーに対して認証を行います。ただし、バックエンド サーバーがユーザーごとの認証をサポートしない場合は、このトピックで後述する他の認証機構のいずれかを使用する必要がある場合があります。
バックエンド サーバーがユーザーごとの認証をサポートし、アプリケーション レベルの認証を使用しており、ユーザー名を Username フィルタに渡す場合。
バックエンド サーバーが接続プールまたはその他のパフォーマンス上の利点を提供する場合。
中間層認証
信頼されたサブシステム認証モデルでは、中間層はバックエンド サーバーに対し固定 ID として認証を行うため、バックエンド サーバーがユーザーの ID を知ることはありません。このため、この認証モデルを使用する場合、サーバーは各ユーザーを認証できないので、バックエンド サーバーがユーザーごとの認証をサポートする場合であっても、バックエンド認証を使用することはできません。
このような場合は、代わりにビジネス データ カタログの中間層認証を使用します。ビジネス データ カタログは、中間層でユーザーごとの認証を実行するように設計されています。この認証モデルには次の利点があります。
データベース接続プールを提供する。
単一の認証モデルを提供する。
バックエンド サーバーでユーザーごとの認証が行われない場合のシナリオのサポート。
詳細なアクセス制御の提供。ビジネス データ カタログを使用して、次のレベルでアクセス制御リスト (ACL) を設定できます。
アプリケーション レジストリ これはビジネス データ カタログのトップレベル オブジェクトです。ビジネス データ カタログでアプリケーション定義をインポートまたはエクスポートできるユーザーを制御します。
LobSystem
Entity
Method
MethodInstance
また、ビジネス データ カタログでエンティティのさまざまなビューを使用できるため、ユーザーが表示できるフィールドを制御できます。
UserContextFilter を使用するバックエンド認証
UserContextFilter フィルタは、現在のユーザー名をバックエンド メソッド呼び出しに追加するようにビジネス データ カタログに指示します。バックエンド メソッドは、このユーザー名を使用してユーザーのアクセスをチェックしたり、現在のユーザーのコンテキストでバックエンド サーバーから返されるエンティティ インスタンスを制限したりします。
この機能は、ライセンスまたは接続プールなどの理由により、バックエンド アプリケーションが認証情報を持たないか、認証情報を使用しない場合に特に役立ちます。このような場合、グループ アカウントを使用して認証を行い、渡されたユーザー名を使用してデータへのアクセスを確認し、制御することができます。
UserContext フィルタを使用する別のシナリオとしては、メタデータの作成者が、ユーザーが制御可能なフィルタとしてユーザー名をとり、機密の個人情報を返すメタデータを作成する場合が考えられます。この場合、ユーザーは別のユーザーのデータを表示できます。この問題を回避するために、UserContext フィルタを使用して、ユーザー名をメソッド呼び出しに渡すことができます。
注意
UserContext フィルタはセキュリティで保護され、フィルタの値は上書きできません。
Microsoft Windows ユーザーの場合、ビジネス データ カタログは domainname\username 形式で System.Security.Principal.WindowsPrincipal.Identity プロパティを渡します。Web クライアントの場合、ビジネス データ カタログは System.Web.HttpContext.Current.User プロパティを渡します。
アクセス制御された、個別にセキュリティ保護可能なメタデータ オブジェクト
メタデータ オブジェクトのビジネス データ カタログ階層内の各オブジェクト (Application、Entity、Method、MethodInstance、Parameter、TypeDescriptor など) は、各プリンシパルがオブジェクトに対してどの権限を持つかを指定する ACL を備えています。13 種類のメタデータ オブジェクトのうち、LobSystem、Entity、Method、および MethodInstance だけが独自の個別に制御可能な ACL を備えています。これらのオブジェクトは、個別にセキュリティ保護可能なメタデータ オブジェクトと呼ばれます。その他のメタデータ オブジェクトは、直接上の親から ACL を継承し、アクセス制御されたメタデータ オブジェクトと呼ばれます。
権限の概要
次の表は、管理者または "権限の管理" 権限を持つユーザーがビジネス データ カタログ アプリケーションに設定できる権限を示しています。
重要
ビジネス データ カタログでユーザーのアクセス許可を変更した場合は、それらに対して再度クロールを実行し、ビジネス データを検索できるようにする必要があります。これは、ACL はデータと一緒にクロールされるので、変更した場合は最新の状態にする必要があるためです。
権限 |
適用先 |
説明 |
---|---|---|
編集 |
アクセス制御されるメタデータ オブジェクト |
|
権限の管理 |
個別にセキュリティ保護可能なメタデータ オブジェクト |
|
実行 (表示) |
MethodInstance |
|
クライアントで選択可能 |
アプリケーションとエンティティ |
|
See Also
タスク
[方法] アクセス制御エントリをメタデータ オブジェクトに追加する
[方法] メタデータ オブジェクトのアクセス制御リストを取得する