ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Coherenceの保護
12c (12.1.2)
B70744-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

6 Oracle WebLogic ServerにおけるOracle Coherenceの保護

この章では、認証と認可を使用してOracle WebLogic ServerドメインにおいてOracle Coherenceを保護する方法について説明します。説明はOracle WebLogic Server管理コンソール固有のものであり、Oracle WebLogic Scripting Tool (WLST)の詳細は含まれていません。Oracle WebLogic Server管理コンソールの使用の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプを参照してください。WLSTの使用の詳細は、WebLogic Scripting Toolコマンド・リファレンスを参照してください。

この章には次の項が含まれます:

6.1 Oracle WebLogic ServerにおけるOracle Coherenceの保護の概要

Oracle WebLogic Serverドメイン内でOracle Coherenceをデプロイする場合に使用できるいくつかのセキュリティ機能があります。デフォルトのセキュリティ構成では、いずれのサーバーもクラスタに参加でき、いずれのExtendクライアントもクラスタのリソースにアクセスできます。クラスタの無許可の使用に対して保護するには、次のセキュリティ機能を構成する必要があります。

Oracle WebLogic ServerドメインにおけるOracle Coherenceのセキュリティの多くは、既存のセキュリティ機能を再利用します。これらの既存のセキュリティ・コンポーネントの知識が前提となっています。可能な場合は、このドキュメント内で既存のコンテンツへの参照が提供されます。

6.2 Oracle Coherenceクラスタ・メンバーシップの保護

Oracle Coherenceセキュリティ・フレームワーク(アクセス・コントローラ)をOracle WebLogic Serverドメインで有効化して、クラスタ・リソースおよび操作へのアクセスを保護できます。アクセス・コントローラは認可を提供し、クラスタ・メンバー間の暗号化/復号化を使用して信頼を検証します。アクセス・コントローラの詳細は、「アクセス・コントローラの使用方法の概要」を参照してください。

Oracle WebLogic Serverでは、アクセス・コントローラは、管理対象Coherenceサーバーのキーストアを使用してOracle Coherenceクラスタ・メンバー間のコール元IDを確立します。デモIDキーストアがデフォルトで使用され、それにはデフォルトのSSL ID (DemoIdentity)が含まれています。デフォルトのキーストアおよびIDは、設定の必要がなく、開発およびテストに適しています。特定のキーストアおよびIDを本番環境に作成する必要があります。Oracle WebLogic Serverにおけるキーストア、IDおよび信頼の構成の詳細は、「Oracle WebLogic Serverのセキュリティの管理」を参照してください。

6.2.1 Oracle Coherenceセキュリティ・フレームワークの有効化

Oracle WebLogic Serverドメインでセキュリティ・フレームワークを有効化するには:

  1. 「Coherenceクラスタのサマリー」ページから、「Coherenceクラスタ」をクリックして、その設定を構成します。

  2. クラスタの設定ページから、「セキュリティ」タブをクリックします。

  3. 全般タブから、セキュリティ・フレームワーク有効オプションをクリックし、セキュリティ・フレームワークを有効化します。

  4. 保存」をクリックします。

6.2.2 セキュリティ・フレームワークで使用するIDの指定

Oracle Coherenceセキュリティ・フレームワークでは、認証を実行する際にプリンシパル(ID)が必要です。SSLデモIDキーストアがデフォルトで使用され、それにはデフォルトのSSL ID (DemoIdentity)が含まれています。SSLデモ・キーストアおよびIDは通常、開発中に使用されます。本番環境では、SSLキーストアおよびIDを作成する必要があります。たとえば、Javaのkeytoolユーティリティを使用して、adminIDを含むキーストアを作成します。

keytool -genkey -v -keystore ./keystore.jks -storepass password -alias admin
-keypass password -dname CN=Administrator,O=MyCompany,L=MyCity,ST=MyState

注意:

SSLキーストアおよびIDを作成する場合、そのSSLキーストアおよびIDを使用するようにOracle WebLogic Serverを構成する必要があります。さらに、クラスタ内のすべての管理対象Coherenceサーバーのキーストアに、同じSSL IDが存在する必要があります。「設定」ページの「キーストア」および「SSL」タブを使用して、管理対象CoherenceサーバーにキーストアおよびIDを構成します。


デフォルトのSSL IDをオーバーライドして、セキュリティ・フレームワークで使用するIDを指定するには:

  1. 「Coherenceクラスタのサマリー」ページから、「Coherenceクラスタ」をクリックして、その設定を構成します。

  2. クラスタの設定ページから、「セキュリティ」タブをクリックします。

  3. セキュリティ・フレームワークがまだ有効でない場合は、全般タブから、セキュリティ・フレームワーク有効オプションをクリックし、有効化します。

  4. 「秘密鍵の別名」フィールドに、IDの別名を入力します。

  5. 「秘密鍵のパスフレーズ」フィールドに、IDのパスワードを入力します。

  6. 「秘密鍵のパスフレーズを確認」フィールドに、パスワードを再入力します。

  7. 保存」をクリックします。

6.3 Oracle Coherenceのキャッシュおよびサービスの認可

Oracle WebLogic Server認証を使用して、ドメイン内で実行するOracle Coherenceリソースを保護できます。特に、様々なロールおよびポリシーを作成して、キャッシュおよびサービスへのアクセスを制御できます。デフォルトでは認可が有効であり、デフォルトの認可ポリシーではすべてのユーザーがすべてのOracle Coherenceリソースにアクセスできます。Oracle WebLogic Serverにおけるロールおよびポリシーの作成の詳細は、「Oracle WebLogic Serverロールおよびポリシーによるリソースの保護」を参照してください。

認可ロールおよびポリシーは、キャッシュおよびサービスに明示的に構成されます。保護されることになるキャッシュ名およびサービスを知っておく必要があります。キャッシュ構成ファイルの調査によって、キャッシュ名およびサービス名が提供される場合があります。ただし、Oracle Coherenceのキャッシュ名のワイルドカード・サポートのために、アプリケーションで使用されているキャッシュ名を知っているアプリケーション開発者またはアーキテクトに確認する必要がある場合があります。たとえば、キャッシュ構成ファイル内のキャッシュ・マッピングは、ワイルドカード(*またはdist-*など)を使用する可能性があり、アプリケーションで実際に使用されているキャッシュの名前を示しません。


注意:

サービスまたはキャッシュ・リソースを削除しても、リソースに対して定義されているロールおよびポリシーは削除されません。ロールおよびポリシーは、サービスまたはキャッシュ・リソースを削除する前に、明示的に削除する必要があります。


6.3.1 キャッシュ認可の指定

Oracle WebLogic Server認証を使用して、特定のOracle Coherenceキャッシュへのアクセスを制限できます。キャッシュ認証を指定するには:

  1. 「Coherenceクラスタのサマリー」ページから、「Coherenceクラスタ」をクリックして、その設定を構成します。

  2. クラスタの設定ページから、「セキュリティ」タブおよび「キャッシュ」サブタブをクリックします。

  3. Click 「新規」をクリックして、ロールやポリシーを定義するキャッシュを定義します。Coherenceキャッシュの作成ページが表示されます。

  4. 「名前」フィールドにキャッシュの名前を入力します。キャッシュの名前は、アプリケーションで使用されるキャッシュの名前と正確に一致する必要があります。

  5. 「終了」をクリックします。Coherenceのキャッシュ・ページに、キャッシュがリストされます。

  6. キャッシュをクリックしてその設定ページにアクセスし、「ロール」タブと「ポリシー」タブをそれぞれ使用してスコープ指定ロールとスコープ指定ポリシーを定義できます。たとえば、特定のユーザーにキャッシュへのアクセスを許可するポリシーを作成できます。グローバル・ロールのメンバーシップに基づいてユーザーを選択するか、またはCoherence固有のスコープ指定ロールを作成して、キャッシュにアクセスできるユーザーの定義のために使用できます。スコープ指定ロールおよびポリシーの指定の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプを参照してください。

6.3.2 サービス認可の指定

Oracle WebLogic Server認証を使用して、Oracle Coherenceサービスへのアクセスを制限できます。キャッシュ・サービス(たとえば分散キャッシュ・サービス)に認証を指定すると、そのサービスで作成されるすべてのキャッシュへのアクセスに影響します。

サービス認証を指定するには:

  1. 「Coherenceクラスタのサマリー」ページから、「Coherenceクラスタ」をクリックして、その設定を構成します。

  2. クラスタの設定ページから、「セキュリティ」タブおよび「サービス」サブタブをクリックします。

  3. 「新規」をクリックして、ロールやポリシーを定義するサービスを定義します。Coherenceサービスの作成ページが表示されます。

  4. 「名前」フィールドにサービスの名前を入力します。サービスの名前は、アプリケーションで使用されるサービスの名前と正確に一致する必要があります。


    注意:

    正確な名前には、サービス名に接頭辞としてスコープ名を含める必要があります。スコープ名は、キャッシュ構成ファイルに明示的に定義するか、より一般的には開発モジュール名から取ることができます。たとえば、ContactsServiceという名前のサービスを定義するcontacts.garという名前のGARをデプロイする場合、正確なサービス名はcontacts:ContactsServiceとなります。


  5. 「終了」をクリックします。Coherenceのサービス・ページに、サービスがリストされます。

  6. サービスをクリックしてその設定ページにアクセスし、「ロール」タブと「ポリシー」タブをそれぞれ使用してスコープ指定ロールとスコープ指定ポリシーを定義できます。たとえば、特定のユーザーにサービスのアクセスを許可するポリシーを作成できます。グローバル・ロールのメンバーシップに基づいてユーザーを選択するか、またはCoherence固有のスコープ指定ロールを作成して、サービスにアクセスできるユーザーの定義のために使用できます。スコープ指定ロールおよびポリシーの指定の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプを参照してください。

6.4 IDトークンでのExtendクライアント・アクセスの保護

IDトークンは、Oracle Coherenceプロキシ・サーバーを介したOracle Coherenceクラスタへの無許可のアクセスに対して保護するために使用されます。IDトークンは、ローカル(WebLogic Server内)のExtendクライアント、およびリモート(WebLogic Server外)のJava、C++、および.NET Extendクライアントによって使用されます。有効なIDトークンを渡すクライアントのみに、クラスタ・サービスへのアクセスが許可されます。null IDトークンが渡される場合(Subjectのスコープ外で接続するクライアント)、クライアントはOracle WebLogic Serverの匿名ユーザーとして処理されます。Extendクライアントは、匿名ユーザーがアクセスできるキャッシュおよびサービスにアクセスできます。


注意:

IDが確立されたら、認可ポリシーを使用してそのIDを特定のキャッシュおよびサービスに制限する必要があります。認可の構成の詳細は、「Oracle Coherenceのキャッシュおよびサービスの認可」を参照してください。


IDトークン・セキュリティでは、IDトークンを作成するIDトランスフォーマの実装、およびIDトークンを検証するIDアサータの実装が必要です。デフォルトのIDトランスフォーマの実装(DefaultIdentityTransformer)およびIDアサータの実装(DefaultIdentityAsserter)が用意されています。デフォルトの実装では、IDトークンとしてSubjectまたはPrincipalを使用します。ただし、いずれのセキュリティ・トークン・タイプもサポートする必要がある場合には(たとえばKerberosトークンのサポート)、カスタム実装を作成できます。トランスフォーマおよびアサータの実装作成の詳細は、「IDトークンを使用したクライアント接続の制限」を参照してください。

6.4.1 Oracle WebLogic Serverで使用するIDトランスフォーマの有効化

IDトランスフォーマはIDトークンとIDとを関連付けます。ローカル(Oracle WebLogic Server内)のExtendクライアントの場合、デフォルトのIDトランスフォーマは置換できません。デフォルトのIDトランスフォーマは、現在のOracle WebLogic Serverユーザーを示すweblogic.security.acl.internal.AuthenticatedSubjectのタイプのトークンを渡します。

リモート(Oracle WebLogic Server外)のExtendクライアントの場合、IDトランスフォーマの実装クラスをアプリケーションのクラスパスの一部として含める必要があり、実装クラスの完全修飾名をクライアントのオペレーション・オーバーライド・ファイルに定義する必要があります。IDトランスフォーマの有効化の詳細は、「カスタムIDトランスフォーマの有効化」を参照してください。次の例では、デフォルトのIDトランスフォーマを有効化します。

...
<security-config>
   <identity-transformer>
      <class-name>
         com.tangosol.net.security.DefaultIdentityTransformer</class-name>
   </identity-transformer>
</security-config>
...

リモートのExtendクライアントは、Subject.doASメソッド内のキャッシュ操作を実行する必要があります。例:

Principal principal = new WLSUserImpl("user");
Subject subject = new Subject();
subject.getPrincipals().add(principal);

Subject.doAs(subject, new PrivilegedExceptionAction()
   {
      NamedCache cache = CacheFactory.getCache("mycache");
      ...

6.4.2 Oracle WebLogic Serverで使用するIDアサータの有効化

IDアサータは、Oracle Coherenceクラスタに対して有効化する必要があり、クライアントのIDトークンをアサート(検証)するために使用されます。ローカル(Oracle WebLogic Server内)のExtendクライアントの場合、IDアサータはweblogic.security.acl.internal.AuthenticatedSubjectのタイプのトークンをアサートするためにすでに有効化されています。

リモート(Oracle WebLogic Server外)のExtendクライアントの場合、カスタムIDアサータの実装クラスがGARにパッケージ化されている必要があります。ただし、リモートのExtendクライアントがトークンとしてnullを渡す場合、IDアサータは必要ありません。プロキシ・サービスがnullでないトークンを受信し、IDアサータの実装クラスが構成されていない場合、SecurityExceptionがスローされ、接続試行が拒否されます。

クラスタに対してIDアサータを有効化するには:

  1. 「Coherenceクラスタのサマリー」ページから、「Coherenceクラスタ」をクリックして、その設定を構成します。

  2. クラスタの設定ページから、「セキュリティ」タブをクリックします。

  3. 全般タブから「IDアサーション」フィールドを使用して、アサータ・クラスの完全修飾名、および必要な場合はクラス・コンストラクタ引数を入力します。たとえば、デフォルトのIDアサータを使用して、次のように入力します。

    com.tangosol.net.security.DefaultIdentityAsserter
    
  4. 保存」をクリックします。

  5. 変更を有効にするには、クラスタ・サーバーを再起動するか、GARを再デプロイします。