BEA ホーム | 製品 | dev2dev | support | askBEA
 ドキュメントのダウンロード   サイト マップ   Glossary 
検索

WebLogic J2EE コネクタ アーキテクチャ

 Previous Next Contents Index PDF で侮ヲ  

セキュリティ

以下の節では、WebLogic J2EE コネクタ アーキテクチャのセキュリティについて説明します。

 


コンテナ管理およびアプリケーション管理によるサインオン

「J2EE コネクタ仕様、バージョン 1.0、最終リリース」で指定されているように、WebLogic J2EE コネクタ アーキテクチャ実装はコンテナ管理とアプリケーション管理の両方のサインオンをサポートしています。

実行時、WebLogic J2EE コネクタ アーキテクチャ実装は、呼び出し側クライアント コンポーネントの「デプロイメント」記述子に基づいて、指定されたサインオン メカニズムを判別します。WebLogic Server J2EE コネクタ アーキテクチャ実装が、リソース アダプタの接続ファクトリの JNDI ルックアップを正しく実行できないなどの理由で、クライアント コンポーネントがどのサインオン メカニズムを要求しているか判別できない場合、コネクタ アーキテクチャはコンテナ管理によるサインオンを試行します。

注意: ただし、この場合でも、クライアント コンポーネントが明示的なセキュリティ情報を指定していれば、その情報も接続を取得するための呼び出し時に提示されます。

詳細については、クライアントに関する考慮事項ConnectionFactory (クライアントと JNDI 間の対話) の取得を参照してください。

アプリケーション管理によるサインオン

アプリケーション管理によるサインオンの場合、クライアント コンポーネントは、エンタープライズ情報システム (EIS) に接続するための呼び出しを実行するときに、必要なセキュリティ情報 (通常はユーザ名とパスワード) を提示します。この場合、アプリケーション サーバは、接続要求と一緒にこの情報を渡す以外にセキュリティ関連の処理を行いません。提供されるリソース アダプタは、セキュリティ情報を提示したクライアント コンポーネントを使用して、リソース アダプタ実装固有の方法で EIS サインオンを実行します。

コンテナ管理によるサインオン

コンテナ管理によるサインオンの場合、クライアント コンポーネントはセキュリティ情報を提示しないので、コンテナが必要なサインオン情報を判別し、接続を要求するための呼び出し時にその情報をリソース アダプタに提供しなければなりません。コンテナ管理によるサインオンでは、コンテナが適切なリソース プリンシパルを判別し、そのリソース プリンシパルの情報をリソース アダプタに Java Authentication and Authorization Service (JAAS) の Subject 形式で提供する必要があります。

 


パスワード資格マップメカニズム

「J2EE コネクタ仕様、バージョン 1.0、最終リリース」では、リソース アダプタがサポートできるパスワード資格と汎用資格という 2 種類の資格が定義されます。WebLogic Server の以前のリリースでは、weblogic-ra.xml のデプロイメント記述子ファイルの security-principal-map 要素でパスワード資格を指定しました。security-principal-map 要素は開始プリンシパルとリソース プリンシパルとの間でマッピングするために用意されました。BEA では security-principal-map 要素に格納されたパスワードを暗号化するためのパスワード変換ツールも用意しました。

weblogic-ra.xml でのユーザ名とパスワードのプリンシパル マップのストレージは、ストレージ メカニズムとしては特に緻密でもセキュアなものではありません。そのため、security-principal-map 要素とパスワード変換ツールは WebLogic Server の今回のリリースで非推奨になりました。プリンシパル マップは security-principal-map から WebLogic Server 内部ストレージ メカニズム (ディレクトリ サーバ) に移されました。

「J2EE コネクタ仕様、バージョン 1.0、最終リリース」では、javax.security.auth.Subject での資格のストレージが要求されています。資格は ManagedConnectionFactory オブジェクトの createManagedConnection() または matchManagedConnection() メソッドのいずれかに渡されます。

この規則に準拠するため、WebLogic Server J2EE コネクタ アーキテクチャは Subject を構築し、以下の手順を実行して資格を格納します。

  1. weblogic.security.Service.EISResource オブジェクトを次のようにインスタンス化する。

    EISResource(java.lang.String applicationName, java.lang.String moduleName, java.lang.String eisName)

  2. 接続要求の開始プリンシパルを取得する。

  3. その開始プリンシパルの資格を次のように取得する。

    weblogic.security.Service.PrincipalAuthenticator(String initiatingPrincipal, weblogic.security.Service.Resource eisResource)

  4. javax.security.auth.Subject をインスタンス化する。

  5. 資格を次のように Subject 内のプライベート セットに追加する。

    Subject.getPrivateCredentials().add(Credential)

認証メカニズム

WebLogic Server ユーザが、保護されている WebLogic Server リソースへのアクセスを要求する場合、必ず認証を受けなければなりません。このため、各ユーザは資格 (ユーザ名/パスワードの組み合わせまたはデジタル証明書) を WebLogic Server に提示する必要があります。WebLogic Server では、以下のタイプの認証メカニズムがサポートされています。

詳細については、『WebLogic Security の管理』の以下の節を参照してください。

セキュリティ プリンシパル マップのアップグレード

定義された security-principal-map 要素を含んだweblogic-ra.xml デプロイメント記述子ファイルを持つリソース アダプタをデプロイすると、そのファイルのデータはあたかも Admin Console を介してコンフィグレーションされたかのように WebLogic Server Embedded LDAP Server にインポートされます (Embedded LDAP Server は資格とマップが永続的に格納される場所)。

しかし、元々のリソース アダプタは変更されません。したがって、元々のリソース アダプタを再デプロイする場合は、データを weblogic-ra.xml ファイルからもう一度インポートする必要があります。

したがって、非推奨の security-principal-map 要素の入ったリソース アダプタをデプロイし、その上で Admin Console 資格マップ インタフェースを使ってエントリを追加または変更する場合、security-principal-map 要素をそのままにしてリソース アダプタをもう一度デプロイすると、これらの変更が消失することが重要です。

この問題を回避するには、リソース アダプタをデプロイし、その上で weblogic-ra.xml ファイルを修正して security-principal-map 要素を削除する必要があります。このように、従来 weblogic-ra.xml ファイルに格納されていた security-principal-map 情報はすべて Embedded LDAP Server に格納されます。security-principal-map 要素の含まれないリソース アダプタを再デプロイする場合、情報は消去されません。

weblogic-ra.xml ファイルの要素編集の詳細については、weblogic-ra.xml デプロイメント記述子の要素.を参照してください。

ユーザとグループの定義

以下の節ではユーザとグループの定義について説明します。ユーザとグループを作成する方法の詳細については、『WebLogic Security の管理』を参照してください。

ユーザ

ユーザとは、WebLogic Server セキュリティ レルムで認証されるエンティティのことです。ユーザは、個人または Java クライアントなどのソフトウェア エンティティでもかまいません。各ユーザには、WebLogic Server セキュリティ レルムでユニークな ID が与えられます。システム管理者は、同じセキュリティ レルム内で同一ユーザが重複しないようにする必要があります。

セキュリティ レルムのユーザの定義では、WebLogic Server セキュリティ レルム内のリソースにアクセスするユーザごとにユニークな名前とパスワードを、Administration Console の [ユーザ] ウィンドウで指定します。

リソース アダプタが使用する特別ユーザが 3 つ用意されています。特別ユーザは以下のとおりです。

グループ

グループは、通常、企業の同じ部門に所属しているなどの共通点を持つユーザの集合を表します。グループは、多数のユーザを効率的に管理する手段です。ACL でグループにパーミッションが付与された場合、そのグループのすべてのメンバがそのパーミッションを持つことになります。パーミッションは、個々のユーザに対してではなく、グループに対して割り当てることをお勧めします。

 


非推奨のセキュリティ プリンシパル マップ メカニズム

このリリースでは、リソース アダプタ デプロイヤがセキュア パスワード資格ストレージを介して指定された許可/認証メカニズムのプラグインとして機能するための標準的なメソッドが提供されます。この WebLogic Server のストレージ メカニズムは、リソース アダプタ アーカイブ内の weblogic-ra.xml デプロイメント記述子に付属のセキュリティ プリンシパル マップ メカニズムに代わるものです。

その結果、weblogic-ra.xml <security-principal-map> 要素は非推奨になりました。しかし、セキュリティ プリンシパル マップ メカニズムを使用する手順はそのまま残します。

「J2EE コネクタ仕様、バージョン 1.0、最終リリース」(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 接続を、ハードコード化して事前にコンフィグレーションされているセキュリティ情報を使用して内部的に取得するため、新しい接続の要求時に渡されるセキュリティ情報に依存しない場合がそれに該当します (ある意味で、これはアプリケーション管理サインオンでもコンテナ管理サインオンでもない異なる第 3 のシナリオと考えられる)。

WebLogic Server と指定のリソース アダプタとの間でセキュリティ情報をやり取りする方法が定義済みの接続管理システム規約に定義されている場合、コンテナ管理によるサインオンとアプリケーション管理によるサインオンのどちらを使用するかは、接続を要求するクライアント アプリケーションに定義されているデプロイメント情報に基づいて決められます。接続管理システム規約の指定方法の詳細については、クライアントに関する考慮事項を参照してください。

クライアント コンポーネントがサインオン メカニズムを指定する方法の詳細については、「J2EE コネクタ仕様、バージョン 1.0、最終リリース」(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 (リソース アダプタ) との関連付けについては、コンフィグレーション非推奨のセキュリティ プリンシパル マップ メカニズムのコンフィグレーションを参照してください。

 


非推奨のパスワード変換ツール

リソース アダプタ アーカイブ内に weblogic-ra.xml デプロイメント記述子を持つセキュリティ プリンシパル マップ メカニズムが新しい WebLogic Server ストレージ メカニズムに変更されたため、パスワード変換ツールは非推奨になりました。

しかし、パスワード変換ツールを使用する手順はそのまま残します。詳細については、コンフィグレーション非推奨のセキュリティ プリンシパル マップ メカニズムのコンフィグレーション,を参照してください。

 


セキュリティ ポリシー処理

「J2EE コネクタ仕様、バージョン 1.0、最終リリース」は、アプリケーション サーバ上で動作するリソース アダプタに関するデフォルト セキュリティ ポリシーを定義しています。また、リソース アダプタがオーバライドしてセキュリティ ポリシーを指定する方法も定義しています。

この仕様に準拠するため、WebLogic Server はリソース アダプタの実行時環境を動的に変更します。リソース アダプタで特定のセキュリティ ポリシーが定義されない場合、WebLogic Server はリソース アダプタの実行時環境を J2EE コネクタ アーキテクチャ仕様で指定されたデフォルト セキュリティ ポリシーでオーバライドします。リソース アダプタで特定のセキュリティ ポリシーが定義されている場合は、WebLogic Server がリソース アダプタの実行時環境をリソース アダプタのデフォルト セキュリティ ポリシーとリソース アダプタに定義された特定のポリシーの組み合わせでオーバライドします。リソース アダプタは ra.xml デプロイメント記述子ファイルの security-permission-spec 要素を使用して固有のセキュリティ ポリシーを定義します。

セキュリティ ポリシーの処理に関する要件の詳細については、「J2EE コネクタ仕様、バージョン 1.0、最終リリース」(http://java.sun.com/j2ee/download.html#connectorspec) の「Runtime Environment」章の「Security Permissions」節を参照してください。

 

Back to Top Previous Next