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

認可および認証を使用してCoherenceをOracle WebLogic Serverドメインで保護できます。

この章の内容は次のとおりです。

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

Oracle WebLogic Serverドメイン内でOracle Coherenceをデプロイする場合に、いくつかのセキュリティ機能を使用してクラスタ・メンバー、キャッシュ、サービスおよびExtendクライアントを保護します。デフォルトのセキュリティ構成では、いずれのサーバーもクラスタに参加でき、いずれのExtendクライアントもクラスタのリソースにアクセスできます。

クラスタの無許可の使用に対して保護するには、次のセキュリティ機能を構成する必要があります。

  • SSL/TLS - Coherenceクラスタ・メンバー接続に対してSSL/TLSを有効にします

  • Coherenceアクセス・コントローラ - クラスタ・メンバー間の認可を提供します

  • WebLogic Server認可 - Oracle Coherenceキャッシュおよびサービスに認可を提供します

  • Coherence IDトークン - Extendクライアントの認証を提供します

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

SSL/TLSを使用したCoherenceの保護

SSL/TLSを使用して、WebLogic Serverドメインの管理対象Coherenceサーバーを保護できます。WebLogic Serverは、アイデンティティと信頼のためのJavaキーストアを作成し、Coherenceが使用するように構成されるCoherenceソケット・プロバイダ構成を作成します。

デフォルトでは、WebLogic ServerはmTLS認証を使用するように管理対象Coherenceサーバーを構成しますが、これらの設定はオーバーライドできます。

WebLogic Serverを使用してSSL/TLSを構成できるのは、クラスタ・メンバーシップ用に構成する場合、またはすべてのCoherenceソケット用にグローバルに構成する場合のみです。Extendプロキシとクライアント、gRPCプロキシとクライアント、フェデレーションなどの個々のCoherenceサービスを構成する方法はありません。これらのサービスを異なる方法で構成する必要がある場合は、「SSL/TLSを使用した通信の保護」を参照してください。

拡張使用証明書

拡張使用証明書を使用する場合、これがCoherenceで使用可能な様々なSSL/TLS構成の選択肢にどのように影響するかを理解することが重要です。

デフォルトでは、WebLogicはmTLSを使用するようにCoherenceを構成します。そのため、すべての証明書の拡張使用にはserverAuthclientAuthの両方を含める必要があります。serverAuth証明書のみが使用可能な場合は、「一方向SSL/TLSを使用したCoherenceクラスタ・トラフィックの構成」の説明に従って、一方向SSL/TLSを使用するようにCoherenceを構成する必要があります。

mTLSを使用したCoherenceクラスタ・トラフィックの構成

Coherenceクラスタはピアツーピア・ネットワークを形成し、各JVMは、他のクラスタ・メンバーから接続を受信するサーバーであり、他のクラスタ・メンバーに接続するクライアントでもあります。WebLogicリモート・コンソールまたはWLSTスクリプトを使用して、WebLogic ServerドメインでSSL/TLSを使用するようにCoherenceクラスタのピアツーピア通信を構成できます。

WebLogicリモート・コンソールを使用したクラスタ・トラフィックに対するmTLSの構成

  1. 「ツリーの編集」で、「環境」「Coherenceクラスタ」の順に移動します。
  2. 編集するCoherenceクラスタをクリックします。
  3. 「一般」タブの「トランスポート」ドロップダウン・リストから、「SSL」を選択します。または、TCMPではなくトランスポートとしてデータグラムを使用する場合は、かわりに「SSLUDP」を選択します。
  4. 「保存」をクリックします。

WLSTスクリプトを使用したクラスタ・トラフィックに対するmTLSの構成

WLSTを使用してクラスタ・メンバーシップにmTLSを使用するようにCoherenceを構成するには、次のスクリプトを使用します:

ノート:

次のスクリプトで、次のように置き換えます:

  • DOMAIN_HOMEをWebLogic Serverドメイン・ホームへのパスに。
  • defaultCoherenceClusterをCoherenceクラスタの名前に。
readDomain('DOMAIN_HOME')
cd('CoherenceClusterSystemResource/CoherenceCluster/CoherenceResource/defaultCoherenceCluster/CoherenceClusterParams/NO_NAME_0')
set('Transport', 'ssl')
updateDomain()
closeDomain()

一方向SSL/TLSを使用したCoherenceクラスタ・トラフィックの構成

一方向SSL/TLSでは、クライアントはサーバー証明書を認証しますが、サーバーはクライアントから証明書を受信しないため、クライアントは匿名です。WebLogicリモート・コンソールまたはWLSTスクリプトを使用して、WebLogic Serverドメインで一方向SSL/TLSを使用するようにCoherenceクラスタ・トラフィックを構成できます。

WebLogicリモート・コンソールを使用したクラスタ・トラフィックに対する一方向SSLの構成

  1. 「ツリーの編集」で、「環境」「Coherenceクラスタ」の順に移動します。
  2. 編集するCoherenceクラスタをクリックします。
  3. 「一般」タブの「トランスポート」ドロップダウン・リストから、「SSL」を選択します。または、TCMPではなくトランスポートとしてデータグラムを使用する場合は、かわりに「SSLUDP」を選択します。
  4. 「保存」をクリックします。
  5. 「セキュリティ」タブの「クライアント認証モード」ドロップダウン・リストから、「なし」を選択します。
  6. 「保存」をクリックします。

WLSTスクリプトを使用したクラスタ・トラフィックSSLの一方向の構成

WLSTを使用してクラスタ・トラフィックに一方向SSL/TLSを使用するようにCoherenceを構成するには、次のスクリプトを使用します:

ノート:

次のスクリプトで、次のように置き換えます:

  • DOMAIN_HOMEをWebLogic Serverドメイン・ホームへのパスに。
  • defaultCoherenceClusterをCoherenceクラスタの名前に。
readDomain('DOMAIN_HOME')
cd('CoherenceClusterSystemResource/defaultCoherenceCluster/CoherenceResource/defaultCoherenceCluster/CoherenceClusterParams/NO_NAME_0')
create("cohKS","CoherenceKeystoreParams")
cd('CoherenceKeystoreParams/NO_NAME_0')
set('Transport', 'ssl')
set('CoherenceClientAuth','none')
updateDomain()
closeDomain()

カスタムCoherenceオペレーション構成ファイルの使用

WebLogic ServerはCoherence構成オプションの限定されたサブセットのみをサポートしているため、場合によってはカスタムCoherenceオペレーション構成ファイル(オーバーライド・ファイルとも呼ばれる)が必要になることがあります。

カスタム・オペレーション構成ファイルは、WebLogicリモート・コンソールまたはWLSTスクリプトを使用してインポートできます。

カスタムCoherenceオペレーション構成ファイルをインポートする前に、ファイルが管理サーバー上に存在し、読取り可能であることを確認する必要があります。オペレーション構成ファイルをインポートすると、ファイルのコピーがDOMAIN_HOME/config/coherence/CoherenceClusterNameディレクトリに配置されます。CoherenceClusterNameは、Coherenceクラスタの実際の名前を表すプレースホルダです。

WebLogicリモートコンソールを使用したカスタム・オペレーション構成ファイルのインポート

  1. 「ツリーの編集」で、「環境」「Coherenceクラスタ」の順に移動します。
  2. 編集するCoherenceクラスタをクリックします。
  3. 「一般」タブで、「構成のインポート」ボタンをクリックします。
  4. 管理サーバー上のカスタムCoherenceオペレーション構成ファイルへのフルパスを入力します。
  5. 「保存」をクリックします。

WLSTスクリプトを使用したカスタム・オペレーション構成ファイルの設定

ファイル名は、ドメイン・ホームへの相対パスです。次の例では、オペレーション構成ファイルのフルパスが/ORACLE_HOME/user_projects/domains/base_domain/config/coherence/defaultCoherenceCluster/mySSLOverride.xmlの場合、ファイル名はconfig/coherence/defaultCoherenceCluster/mySSLOverride.xmlになります。

次のWLSTスクリプトを使用して、カスタムCoherenceオペレーション構成ファイルを構成します。

ノート:

次のスクリプトで、次のように置き換えます:

  • DOMAIN_HOMEをWebLogic Serverドメイン・ホームへのパスに。
  • defaultCoherenceClusterをCoherenceクラスタの名前に。
  • sslSocketProviderNameをソケット・プロバイダの名前に。
readDomain('DOMAIN_HOME')
cd('CoherenceClusterSystemResource/defaultCoherenceCluster/CoherenceResource/defaultCoherenceCluster')
set('CustomClusterConfigurationFileName', 'config/coherence/defaultCoherenceCluster/mySSLOverride.xml')
cd('CoherenceClusterParams/NO_NAME_0')
set('GlobalSocketProvider','sslSocketProviderName')
updateDomain()
closeDomain()

Coherenceグローバル・ソケット・プロバイダの構成

WebLogic Serverでは、Coherenceグローバル・ソケット・プロバイダを構成できます。グローバル・ソケット・プロバイダは、WebLogic Server生成ソケット・プロバイダまたはCoherenceオペレーション構成からのソケット・プロバイダのいずれかです。これには、カスタム・オペレーション構成ファイルのインポートが必要になる場合があります。

「グローバル・ソケット・プロバイダの指定」および「カスタムCoherenceオペレーション構成ファイルの使用」を参照してください。

WebLogicリモート・コンソールで、WebLogic Serverソケット・プロバイダをグローバル・ソケット・プロバイダとして設定します

  1. 「ツリーの編集」で、「環境」「Coherenceクラスタ」の順に移動します。
  2. 編集するCoherenceクラスタをクリックします。
  3. 「セキュリティ」タブで、「保護された本番」オプションを有効にします。
  4. 「保存」をクリックします。

WebLogic Serverソケット・プロバイダの名前は、「グローバル・ソケット・プロバイダ」フィールドに自動的に挿入されます。

WLSTスクリプトを使用したグローバル・ソケット・プロバイダとしてのWebLogicソケット・プロバイダの設定

次のWLSTスクリプトを使用して、WebLogic Serverソケット・プロバイダをCoherenceグローバル・ソケット・プロバイダとして構成します。

ノート:

次のスクリプトで、次のように置き換えます:

  • DOMAIN_HOMEをWebLogic Serverドメイン・ホームへのパスに。
  • defaultCoherenceClusterをCoherenceクラスタの名前に。
readDomain('DOMAIN_HOME')
cd('CoherenceClusterSystemResource/defaultCoherenceCluster/CoherenceResource/defaultCoherenceCluster/CoherenceClusterParams/NO_NAME_0')
set('SecuredProduction', 'true')
updateDomain()
closeDomain()

WebLogicリモートコンソールでのグローバル・ソケット・プロバイダとしてのカスタム・ソケット・プロバイダの設定

WebLogicリモート・コンソールを使用して、カスタム・ソケット・プロバイダをグローバル・ソケット・プロバイダとして使用するようにCoherenceを構成できます。指定されたソケット・プロバイダは、Coherenceオペレーション構成で構成する必要があります。

  1. 「ツリーの編集」で、「環境」「Coherenceクラスタ」の順に移動します。
  2. 編集するCoherenceクラスタをクリックします。
  3. 「セキュリティ」タブで、「グローバル・ソケット・プロバイダ」フィールドにカスタム・ソケット・プロバイダの名前を入力します。
  4. 「保存」をクリックします。

WLSTスクリプトを使用したグローバル・ソケット・プロバイダとしてのカスタム・ソケット・プロバイダの設定

WLSTを使用して、カスタム・ソケット・プロバイダをグローバル・ソケット・プロバイダとして使用するようにCoherenceを構成できます。指定されたソケット・プロバイダは、Coherenceオペレーション構成で構成する必要があります。

次のWLSTスクリプトを使用して、Coherenceグローバル・ソケット・プロバイダの名前を設定します。

ノート:

次のスクリプトで、次のように置き換えます:

  • DOMAIN_HOMEをWebLogic Serverドメイン・ホームへのパスに。
  • defaultCoherenceClusterをCoherenceクラスタの名前に。
  • sslSocketProviderNameをソケット・プロバイダの名前に。
readDomain('DOMAIN_HOME')
cd('CoherenceClusterSystemResource/defaultCoherenceCluster/CoherenceResource/defaultCoherenceCluster/CoherenceClusterParams/NO_NAME_0')
set('Transport', 'ssl')
set('GlobalSocketProvider', 'sslSocketProviderName')
updateDomain()
closeDomain()

WebLogic Serverの保護された本番モード

WebLogic Serverドメインが保護された本番モードの場合、Coherenceはデフォルトで、グローバル・ソケット・プロバイダとしてWebLogic Serverソケット・プロバイダを使用するように構成されます。デフォルトのWebLogicソケット・プロバイダは、mTLS用に構成されます。mTLSを必要としない場合は、WebLogicリモート・コンソールまたはWLSTスクリプトを使用してCoherence構成をオーバーライドできます。

WebLogic Serverの保護された本番モードの一般情報は、Oracle WebLogic Server本番環境の保護ドメイン・モードがデフォルトのセキュリティ構成に与える影響の理解に関する項を参照してください。

保護された本番モードでの一方向SSL/TLSのためのCoherenceの構成

WebLogic Serverドメインが保護された本番モード(WebLogic Serverソケット・プロバイダのデフォルトはmTLS)の場合、WebLogicリモート・コンソールまたはWLSTスクリプトを使用して、かわりに一方向SSL/TLSを使用するようにCoherenceを構成できます。

WebLogicリモート・コンソールを使用した一方向SSL/TLSのためのCoherenceの構成

  1. 「ツリーの編集」で、「環境」「Coherenceクラスタ」の順に移動します。
  2. 編集するCoherenceクラスタをクリックします。
  3. 「セキュリティ」タブの「クライアント認証モード」ドロップダウン・リストから、「なし」を選択します。
  4. 「保存」をクリックします。

WLSTスクリプトを使用した一方向SSL/TLSのためのCoherenceの構成

次のスクリプトを使用して、一方向SSL/TLSを使用するようにCoherenceを構成します。

ノート:

次のスクリプトで、次のように置き換えます:

  • DOMAIN_HOMEをWebLogic Serverドメイン・ホームへのパスに。
  • defaultCoherenceClusterをCoherenceクラスタの名前に。
readDomain('DOMAIN_HOME')
cd('CoherenceClusterSystemResource/defaultCoherenceCluster/CoherenceResource/defaultCoherenceCluster/CoherenceClusterParams/NO_NAME_0')
create("cohKS","CoherenceKeystoreParams")
cd('CoherenceKeystoreParams/NO_NAME_0')
set('CoherenceClientAuth','none')
updateDomain()
closeDomain()
保護された本番モードでのCoherence SSL/TLSの無効化

WebLogic Serverドメインが保護された本番モードであるが、CoherenceをプレーンTCPで実行する必要がある場合は、WebLogicリモート・コンソールまたはWLSTスクリプトを使用してこの動作を構成できます。

ノート:

Coherenceで保護された本番モードを無効にすると、Coherenceにのみ影響し、WebLogic Serverのセキュアな本番モードの広範な側面には影響しません。

WebLogicリモート・コンソールを使用した保護された本番モードでのCoherence SSL/TLSの無効化

  1. 「ツリーの編集」で、「環境」「Coherenceクラスタ」の順に移動します。
  2. 編集するCoherenceクラスタをクリックします。
  3. 「セキュリティ」タブで、「保護された本番」オプションをオフにします。
  4. 「保存」をクリックします。

WLSTスクリプトを使用した保護された本番モードでのCoherence SSL/TLSの無効化

プレーンTCPを使用するようにCoherenceを構成するには、次のスクリプトを使用します。

ノート:

次のスクリプトで、次のように置き換えます:

  • DOMAIN_HOMEをWebLogic Serverドメイン・ホームへのパスに。
  • defaultCoherenceClusterをCoherenceクラスタの名前に。
readDomain('DOMAIN_HOME')
cd('CoherenceClusterSystemResource/defaultCoherenceCluster/CoherenceResource/defaultCoherenceCluster/CoherenceClusterParams/NO_NAME_0')
set('SecuredProduction', 'false')
updateDomain()
closeDomain()

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

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

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

この項には次のトピックが含まれます:

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

WebLogicリモート・コンソールを使用してOracle WebLogic Serverドメインのセキュリティ・フレームワークを有効にするには:

  1. 「ツリーの編集」で、「環境」「Coherenceクラスタ」の順に移動します。
  2. 編集するCoherenceクラスタをクリックし、「セキュリティ」タブを選択します。
  3. 「セキュリティ・フレームワークの有効化」オプションをオンにします。
  4. 「保存」をクリックします。

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

Oracle Coherenceセキュリティ・フレームワークでは、認証を実行する際にプリンシパル(ID)が必要です。SSLデモアイデンティティ・キーストアがデフォルトで使用され、それにはデフォルトの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が存在する必要があります。「環境」: 「サーバー」: myServer: 「セキュリティ」タブの「キーストア」および「SSL」タブを使用して、キーストアおよびアイデンティティを構成します。

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

  1. 「ツリーの編集」で、「環境」「Coherenceクラスタ」の順に移動します。
  2. 編集するCoherenceクラスタをクリックし、「セキュリティ」タブを選択します。
  3. 「セキュリティ・フレームワークの有効化」オプションが有効になっていることを確認します。
  4. オプション: 「グローバル・ソケット・プロバイダ」オプションをオンにします。このオプションを有効にすると、CoherenceはOracle WebLogic ServerのSSLをグローバル・ソケット・プロバイダとして使用します。CoherenceでのグローバルSSLソケット・プロバイダの構成の詳細は、「クラスタ側のExtendプロキシSSLソケット・プロバイダの構成」を参照してください。
  5. 「クライアント認証モード」フィールドで、SSLのクライアント認証モードを指定します。有効な値は、次のとおりです。
    • none
    • required
    • wanted

    デフォルト値はnoneです

  6. 「秘密キーのパスフレーズ」フィールドに、IDのパスワードを入力します。
  7. 「保存」をクリックします。

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

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

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

ノート:

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

この項には次のトピックが含まれます:

キャッシュ認可の指定

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

  1. 「ツリーの編集」で、「環境」「Coherenceクラスタ」myCoherenceCluster「Coherenceキャッシュ」の順に移動します。
  2. 「新規」をクリックします。
  3. 「名前」フィールドに、Coherenceキャッシュの名前を入力します。キャッシュの名前は、アプリケーションで使用されるキャッシュの名前と正確に一致する必要があります。
  4. 「作成」をクリックし、変更をコミットします。
  5. Coherenceキャッシュにスコープ指定されたセキュリティ・ロールおよびポリシーを定義します。Oracle WebLogicリモート・コンソール・オンライン・ヘルプスコープ指定ロールの作成に関する項を参照してください。
    たとえば、特定のユーザーにキャッシュへのアクセスを許可するポリシーを作成できます。グローバル・ロールのメンバーシップに基づいてユーザーを選択するか、またはCoherence固有のスコープ指定ロールを作成して、キャッシュにアクセスできるユーザーの定義のために使用できます。詳細は、『Oracle WebLogic Serverロールおよびポリシーによるリソースの保護』WebLogicリソースの保護の概要に関する項を参照してください。

サービス認可の指定

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

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

  1. 「ツリーの編集」で、「環境」「Coherenceクラスタ」myCoherenceCluster「Coherenceサービス」の順に移動します。
  2. 「新規」をクリックします。
  3. 「名前」フィールドに、Coherenceサービスの名前を入力します。サービスの名前は、アプリケーションで使用されるサービスの名前と正確に一致する必要があります。

    ノート:

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

  4. 「作成」をクリックし、変更をコミットします。
  5. Coherenceサービスにスコープ指定されたセキュリティ・ロールおよびポリシーを定義します。Oracle WebLogicリモート・コンソール・オンライン・ヘルプスコープ指定ロールの作成に関する項を参照してください。
    たとえば、特定のユーザーにサービスのアクセスを許可するポリシーを作成できます。グローバル・ロールのメンバーシップに基づいてユーザーを選択するか、またはCoherence固有のスコープ指定ロールを作成して、サービスにアクセスできるユーザーの定義のために使用できます。詳細は、『Oracle WebLogic Serverロールおよびポリシーによるリソースの保護』WebLogicリソースの保護の概要に関する項を参照してください。

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

この項には次のトピックが含まれます:

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トランスフォーマを有効化します。

...
<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");
      ...

Oracle WebLogic Serverで使用するアイデンティティ・アサータの有効化

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

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

WebLogicリモート・コンソールまたはWLSTを使用して、クラスタのアイデンティティ・アサータを有効にできます。

  • WebLogicリモート・コンソールを使用する場合は、次のステップを実行します:
    1. 「ツリーの編集」で、「環境」「Coherenceクラスタ」myCoherenceCluster「Coherenceアイデンティティ・アサータ」の順に移動します。
    2. 「クラス名」フィールドに、アサータ・クラスの完全修飾名を入力します。たとえば、デフォルトのアイデンティティ・アサータを使用するには、com.tangosol.net.security.DefaultIdentityAsserterと入力します。
    3. 「保存」をクリックします。
    4. 引数がある場合は、「アイデンティティ・アサータ・コンストラクタ引数」ノードを開き、「新規」をクリックしてクラス・コンストラクタ引数を追加します。
    5. 「保存」をクリックし、変更をコミットします。
  • WLSTを使用する場合は、次のステップを実行します:

    WLSTを起動し、ドメインに接続します。次に、アイデンティティ・アサータを構成します。次のスクリプトを例として使用します:

    次のスクリプトで、次のように置き換えます:

    • DOMAIN_HOMEをWebLogic Serverドメイン・ホームへのパスに。
    • defaultCoherenceClusterをCoherenceクラスタの名前に。
    readDomain('DOMAIN_HOME')
    cd('CoherenceClusterSystemResource/defaultCoherenceCluster/CoherenceResource/defaultCoherenceCluster/CoherenceClusterParams/NO_NAME_0')
    set('SecurityFrameworkEnabled', 'true')
    cd('CoherenceIdentityAsserter/NO_NAME_0')
    set('ClassName',"com.tangosol.net.security.DefaultIdentityAsserter")
    updateDomain()
    closeDomain()

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