![]() |
![]() |
|
|
| |
セキュリティ
以下の節では、WebLogic J2EE コネクタ アーキテクチャのセキュリティについて説明します。
コンテナ管理およびアプリケーション管理によるサインオン
「J2EE コネクタ仕様、バージョン 1.0、最終草案 2」で指定されているように、WebLogic J2EE コネクタ アーキテクチャ実装はコンテナ管理とアプリケーション管理の両方のサインオンをサポートしています。
実行時、Weblogic J2EE コネクタ アーキテクチャ実装は、呼び出し側クライアント コンポーネントのデプロイメント記述子に基づいて、指定されたサインオン メカニズムを判別します。Weblogic Server J2EE コネクタ アーキテクチャ実装が、リソース アダプタの接続ファクトリの JNDI ルックアップを正しく実行できないなどの理由で、サインオン メカニズムを判別できない場合、コネクタ アーキテクチャはコンテナ管理によるサインオンを試行します。
注意: ただしこの場合でも、クライアント コンポーネントが明示的なセキュリティ情報を指定していれば、その情報も接続を取得するための呼び出し時に提示されます。
詳細については、 クライアントに関する考慮事項の ConnectionFactory(クライアントと JNDI 間の対話)の取得を参照してください。
アプリケーション管理によるサインオン
アプリケーション管理によるサインオンの場合、クライアント コンポーネントは、エンタープライズ情報システム(EIS)に接続するための呼び出しを実行するときに、必要なセキュリティ情報(通常はユーザ名とパスワード)を提示します。この場合、アプリケーション サーバは、接続リクエストと一緒にこの情報を渡す以外にセキュリティ関連の処理を行いません。提供されるリソース アダプタは、セキュリティ情報を提示したクライアント コンポーネントを使用して、リソース アダプタ実装固有の方法で EIS サインオンを実行します。
コンテナ管理によるサインオン
コンテナ管理によるサインオンの場合、クライアント コンポーネントはセキュリティ情報を提示しないので、コンテナが必要なサインオン情報を判別し、接続を要求するための呼び出し時にその情報をリソース アダプタに提供しなければなりません。コンテナ管理によるサインオンでは、コンテナが適切なリソース プリンシパルを判別し、そのリソース プリンシパルの情報をリソース アダプタに Java Authentication and Authorization Service(JAAS)の Subject 形式で提供する必要があります。
セキュリティ プリンシパル マップ
「J2EE コネクタ仕様、バージョン 1.0、最終草案 2」(http://java.sun.com/j2ee/download.html#connectorspec)の「EIS Sign-on」セクションでは、サインオンの実行を委任するリソース プリンシパルを定義するためのさまざまなオプションが示されています。Weblogic Server 実装では、この仕様のセキュリティ プリンシパル マップ オプションを実装しています。
このオプションの場合、リソース プリンシパルは、呼び出すコンポーネントの開始側/呼び出し側プリンシパル ID のマップによって判別されます。判別されたリソース プリンシパルはマップ元プリンシパルの ID またはセキュリティ属性を継承しませんが、定義されたマッピングに基づいて ID とセキュリティ属性(パスワード)を取得します。
したがって、コンテナ管理によるサインオンを有効にして使用するには、Weblogic Server が initiating-principal
と resource-principal
の関連付けを指定するメカニズムを用意する必要があります。このために WebLogic Server では、デプロイされるリソース アダプタごとに定義可能なセキュリティ プリンシパル マップを使用します。
コンテナ管理によるサインオンがクライアント コンポーネントに要求され、セキュリティ プリンシパル マップがデプロイされるリソース アダプタに合わせてコンフィグレーションされていない場合、接続の取得は試行されますが、提供される JAAS Subject は NULL
となります。このシナリオが有効となるかどうかは、リソース アダプタの実装によって決まります。
セキュリティ プリンシパル マップをコンフィグレーションしていない状況でも、有効と見なされる場合があります。リソース アダプタが、すべての EIS 接続を、ハードコード化して事前にコンフィグレーションされているセキュリティ情報を使用して内部的に取得する(アプリケーション管理によるサインオンでもコンテナ管理によるサインオンでもない、別のシナリオと考えることもできます)ため、新しい接続の要求時に渡されるセキュリティ情報に依存しない場合がそれに該当します。
WebLogic Server と指定のリソース アダプタとの間でセキュリティ情報をやり取りする方法が定義済みの接続管理システム規約に定義されている場合、コンテナ管理によるサインオンとアプリケーション管理によるサインオンのどちらを使用するかは、接続を要求するクライアント アプリケーションに定義されているデプロイメント情報に基づいて決められます。接続管理システム規約の指定方法の詳細については、 クライアントに関する考慮事項を参照してください。
クライアント コンポーネントがサインオン メカニズムを指定する方法の詳細については、「J2EE コネクタ仕様、バージョン 1.0、最終草案 2」(http://java.sun.com/j2ee/download.html#connectorspec)の「Connection Management」章の「Application Programming Model」節を参照してください。
J2EE コネクタ アーキテクチャ アプリケーションのセキュリティ モデルの詳細については、同「Application Security Model」を参照してください。
コンテナ管理によるサインオンの使い方
コンテナ管理によるサインオンを使用するには、WebLogic Server がリソース プリンシパルを識別してから、リソース プリンシパルに代わって接続を要求しなければなりません。WebLogic Server は、weblogic-ra.xml
デプロイメント記述子ファイルの security-principal-map
要素で指定されているセキュリティ プリンシパル マッピングを探してリソース プリンシパルを識別します。
security-principal-map
要素は、initiating-principal
と resource-principal
の関係を定義します。
各 security-principal-map
要素は、リソース アダプタおよび EIS サインオン処理に合わせて適切なリソース プリンシパル値を定義するメカニズムを提供します。security-principal-map
要素では、管理対象の接続と接続ハンドルを割り当てる場合に使用する定義済みの開始プリンシパルと対応するリソース プリンシパルのユーザ名およびパスワードを指定します。
デフォルト リソース プリンシパル
デフォルト リソース プリンシパルは、security-principal-map
要素の接続ファクトリに合わせて定義できます。initiating-principal
値に「*
」を指定し、対応する resource-principal
値を指定した場合、マップ内で現在の ID と一致するものがないときには必ず定義した resource-principal
が利用されます。
ただし、この要素は省略できます。コンテナ管理によるサインオンがリソース アダプタにサポートされており、いずれかのクライアントに使用される場合は、何らかの形式で指定する必要があります。
また、デプロイ時に管理対象の接続を接続プールに取得する試みは、定義されている「デフォルト」リソース プリンシパル(指定されている場合)を使用して行われます。
J2EE コネクタ アーキテクチャの security-principal-map
のコンフィグレーションとデプロイ済みの .rar
(リソース アダプタ)との関連付けについては、
コンフィグレーションの
セキュリティ プリンシパル マップのコンフィグレーションを参照してください。
パスワード変換ツール
BEA では、セキュリティ パスワード保護の重要性を考慮して、weblogic-ra.xml
ファイルで提示されるすべてのパスワードを暗号化できる変換ツールを用意しています。
詳細については、 コンフィグレーションの セキュリティ プリンシパル マップのコンフィグレーションを参照してください。
![]() |
![]() |
![]() |