WebLogic Server のセキュリティ

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

RDBMS セキュリティ ストアの管理

WebLogic Server では、認可プロバイダ、ロール マッピング プロバイダ、資格マッピング プロバイダ、および証明書レジストリ プロバイダで使用されるデータストアとして、外部の RDBMS を使用するオプションが提供されています。このデータストアは RDBMS セキュリティ ストアと呼ばれますが、クラスタなどのドメイン内の複数の WebLogic Server インスタンスで SAML 2.0 サービスを使用する場合には強くお勧めします。

注意 : RDBMS セキュリティ ストアを使用するには、まず、ドメインを作成して外部 RDBMS サーバをコンフィグレーションします。ドメインを起動する前に、RDBMS セキュリティ ストアで必要になるテーブルをデータストア内に作成します。WebLogic Server インストール ディレクトリには、サポート対象のデータベースごとに、これらのテーブルを作成する一連の SQL スクリプトが含まれています。

以下の節では、RDBMS セキュリティ ストアのコンフィグレーションおよび管理方法について説明します。

RDBMS セキュリティ ストアとして機能する、WebLogic Server でサポートされる特定のデータベース システムの最新の詳細については、「WebLogic Server でサポート対象のコンフィグレーション」を参照してください。

 


RDBMS セキュリティ ストアを使用するセキュリティ プロバイダ

以下のセキュリティ プロバイダは、ドメイン内に RDBMS セキュリティ ストアがコンフィグレーションされている場合は、そのストアを使用します。

ドメイン内に RDBMS セキュリティ ストアがコンフィグレーションされている場合、セキュリティ レルム内に作成されている上記のいずれかのセキュリティ プロバイダのインスタンスは、自動的に RDBMS セキュリティ ストアのみをデータストアとして使用し、組み込み LDAP サーバは使用しません。ドメイン内にコンフィグレーションされている上記のリスト以外の WebLogic セキュリティ プロバイダは、それぞれのデフォルト ストアを使用します。たとえば、WebLogic 認証プロバイダは組み込み LDAP サーバを使用します。

RDBMS セキュリティ ストアはドメインの作成時にコンフィグレーションすることをお勧めします。このプロセスを簡素化するようにコンフィグレーション ウィザードが改良されました。このユーティリティには RDBMS 接続をテストするオプションが含まれており、ドメインの起動時にドメインへのアクセスに必要なセキュリティ ポリシーが確実に取得されるようになります。

コンフィグレーション ウィザードに加えて、RDBMSSecurityStore MBean も用意されています。WebLogic Scripting Tool (WLST) から RDBMS セキュリティ ストアをコンフィグレーションするためのインタフェースです。

 


RDBMS セキュリティ ストアのコンフィグレーション

ドメインで RDBMS セキュリティ ストアを作成してコンフィグレーションするには、以下の節で説明するタスクを完了します。

RDBMS セキュリティ ストアを使用するドメインの作成

ドメインで RDBMS セキュリティ ストアを使用するには、ドメインの作成時に RDBMS セキュリティ ストアをコンフィグレーションすることをお勧めします。RDBMS セキュリティ ストアを使用するように既存のドメインを変更することはできますが、データベース接続が正しくコンフィグレーションされていない場合、ドメインへのアクセスを許可するために必要なポリシーが使用できず、ドメインを使用できなくなる可能性があるため、お勧めしません。

WebLogic Server には、RDBMS セキュリティ ストアをコンフィグレーションできるドメインの作成方法として 2 通りの方法があります。

どちらの方法を選んでドメインを作成する場合でも、以下の節で説明するように、RDBMS セキュリティ ストアとして機能するデータベースの接続プロパティを必ずコンフィグレーションしてください。

データベース接続プロパティの指定

コンフィグレーション ウィザードまたは WLST で RDBMS セキュリティ ストアをコンフィグレーションするときに、以下の項目を指定する必要があります。

JDBC ドライバの接続プロパティ属性で指定するパラメータはカンマ区切りのリストにする必要があります。以下のサンプルでは、WLST を使用して Oracle、MS-SQL、および DB2 のデータベース接続プロパティをコンフィグレーションする方法を示します。

Oracle のサンプル

コード リスト 10-1 に、RDBMS セキュリティ ストア用に Oracle をコンフィグレーションするサンプルを示します。

コード リスト 10-1 RDBMS セキュリティ ストア用の Oracle のコンフィグレーション
create('base_domain','SecurityConfiguration') 
cd('/SecurityConfiguration/base_domain')
a=get('DefaultRealm')
cd('Realm/myrealm')
rdbms = create("myRDBMSSecurityStore", "RDBMSSecurityStore")
rdbms.setUsername('ortiz')
rdbms.setPasswordEncrypted('weblogic')
rdbms.setConnectionURL('jdbc:bea:oracle://avitek21:1521')
rdbms.setDriverName('weblogic.jdbc.oracle.OracleDriver')
rdbms.setConnectionProperties('user=ortiz,portNumber=1521,SID=pint101a,serverName=avitek21')
MS-SQL のサンプル

コード リスト 10-2 に、RDBMS セキュリティ ストア用に MS-SQL をコンフィグレーションするサンプルを示します。

コード リスト 10-2 RDBMS セキュリティ ストア用の MS-SQL のコンフィグレーション
create('base_domain','SecurityConfiguration') 
cd('/SecurityConfiguration/base_domain')
a=get('DefaultRealm')
cd('Realm/myrealm')
rdbms = create("myRDBMSSecurityStore", "RDBMSSecurityStore")
rdbms.setUsername('garnett')
rdbms.setPasswordEncrypted('weblogic')
rdbms.setConnectionURL('jdbc:bea:sqlserver://avitek6:1433')
rdbms.setDriverName('weblogic.jdbc.sqlserver.SQLServerDriver')
rdbms.setConnectionProperties('user=garnett,portNumber=1433,databaseName=wls3,serverName=avitek6')
DB2 のサンプル

コード リスト 10-3 に、RDBMS セキュリティ ストア用に DB2 をコンフィグレーションするサンプルを示します。

注意 : DB2 を選択する場合は、WebLogic Server で提供されている DB2 用の WebLogic Type 4 JDBC ドライバを選択するオプションがあります。ただし、この JDBC ドライバを使用する場合は、追加のプロパティ BatchPerformanceWorkaround を指定して true に設定する必要があります。このコンフィグレーションで BatchPerformanceWorkaroundtrue に設定しない場合、WebLogic Server は起動に失敗し、SecurityServiceException メッセージが生成されます。
コード リスト 10-3 RDBMS セキュリティ ストア用の DB2 のコンフィグレーション
create('base_domain','SecurityConfiguration') 
cd('/SecurityConfiguration/base_domain')
a=get('DefaultRealm')
cd('Realm/myrealm')
rdbms = create("myRDBMSSecurityStore", "RDBMSSecurityStore")
rdbms.setUsername('brady')
rdbms.setPasswordEncrypted('weblogic')
rdbms.setConnectionURL('jdbc:bea:db2://avitek3:50000')
rdbms.setDriverName('weblogic.jdbc.db2.DB2Driver')
rdbms.setConnectionProperties('user=brady,portNumber=50000,databaseName=wls,serverName=avitek3,batchPerformanceWorkaround=true')

DB2 用の WebLogic Type 4 JDBC ドライバの接続プロパティの指定については、『WebLogic Type 4 JDBC ドライバ ガイド』の「DB2 ドライバ」を参照してください。

デフォルトの接続プロパティの詳細

RDBMS セキュリティ ストアは内部的には Oracle Kodo を使用して、DB2 用の WebLogic Type 4 JDBC ドライバを使用するデータベースに接続し、やり取りします。RDBMSSecurityStore MBean で設定された属性は Kodo の javax.sql.DataSource 実装のプロパティで設定される属性に変換されます。

これらの属性の詳細については、以下のトピックを参照してください。

データベース接続のテスト

コンフィグレーション ウィザードで RDBMS セキュリティ ストアをコンフィグレーションする途中で、データベース接続をテストするオプションが表示されます。接続が適切に設定されているかどうか検証できるため、このオプションを使用することを強くお勧めします。データベース接続に問題があると、ドメインへのアクセスを制御するセキュリティ プロバイダが必要なセキュリティ ポリシーを取得できない場合に、ドメインを起動できなくなる可能性があります。

コンフィグレーション ウィザードでの RDBMS セキュリティ ストアのコンフィグレーションについては、『コンフィグレーション ウィザードを使用した WebLogic ドメインの作成』の「環境のカスタマイズ」を参照してください。

セキュリティ データストア内での RDBMS テーブルの作成

ドメインを起動する前に、データベース管理者は RDBMS セキュリティ ストアで使用されるデータベース内に RDBMS テーブルを作成する SQL スクリプトを実行する必要があります。以下の WebLogic Server インストール ディレクトリには、サポートされる各 RDBMS システム用に、これらのテーブルを作成および削除するための一連の SQL スクリプトが用意されています。

WL_HOME/server/lib

RDBMS セキュリティ ストアとして機能するデータベース用の該当する SQL スクリプトを実行するときは、必ず、ドメイン作成時に RDBMS に対して指定したものと同じ接続プロパティ (アクセスするユーザの資格、データベース URL など) を指定してください。

表 10-1 に、各 SQL スクリプトの名前を示します。

表 10-1 RDBMS データストア テーブルを作成および削除するための SQL スクリプト
RDBMS システム
WL_HOME/server/lib の SQL スクリプト
データストア テーブルの作成
データストア テーブルの削除
Oracle 9i、10g、11g
rdbms_security_store_oracle.sql
rdbms_security_store_oracle_remove.sql
MS-SQL 2000、2005
rdbms_security_store_sqlserver.sql
rdbms_security_store_sqlserver_remove.sql
DB2 9.2、9.5
rdbms_security_store_db2.sql
rdbms_security_store_db2_remove.sql
PointBase 5.1
rdbms_security_store_pointbase.sql
rdbms_security_store_pointbase_remove.sql

RDBMS セキュリティ ストアの JMS トピックのコンフィグレーション

複数の WebLogic Server インスタンスを含むドメイン、またはクラスタ内に RDBMS セキュリティ ストアをコンフィグレーションする場合は、以下のタスクを実行することを強くお勧めします。

  1. そのドメインで JMS 通知を有効にする。
  2. RDBMS セキュリティ ストアで使用できる JMS トピックをコンフィグレーションする。

JMS 通知を使用すると、RDBMS セキュリティ ストアに格納され、レルム内のセキュリティ プロバイダによって管理されるセキュリティ データを、ドメイン内のすべてのサーバ インスタンスにわたって同期化することができます。

警告 : RDBMS セキュリティ ストアが複数サーバのドメインやクラスタ化されたドメインでコンフィグレーションされているときに、そのストアで使用できる JMS トピックをコンフィグレーションしない場合は、セキュリティ ポリシーの作成やセキュリティ コンフィグレーションの更新を慎重に行う必要があります。JMS トピックをコンフィグレーションしない場合、セキュリティの更新内容に従ってすべてのサーバ インスタンスが一貫して機能するにはドメインの再起動が必要になる可能性があります。

JMS 通知を有効にするには、RDBMS セキュリティ ストアがコンフィグレーションされているドメインを起動して、以下のいずれかの方法で RDBMSSecurityStore MBean の属性をコンフィグレーションします。

JMS 通知を有効にするために設定する必要のある RDBMSSecurityStore MBean の属性について表 10-2 で説明します。

表 10-2 JMS トピックをコンフィグレーションするための RDBMSSecurityStore MBean の属性
属性名
説明
JMSTopic
Kodo リモート コミット プロバイダが通知をパブリッシュしたり、他の JVM から送信された通知をサブスクライブしたりする JMS トピック。対象となる JMS トピックはあらかじめデプロイされている必要がある。
JMSTopicConnectionFactory
JMS トピックを検索するために使用する javax.jms.TopicConnectionFactory インスタンスの JNDI 名。
『WebLogic JMS のコンフィグレーションと管理』の「接続ファクトリのコンフィグレーション」では、javax.jms.TopicConnectionFactory のインスタンスである WebLogic JMS 接続ファクトリ weblogic.jms.ConnectionFactory について説明している。接続ファクトリのコンフィグレーションについては、この節を参照。
NotificationProperties
JNDI InitialContext の作成時に渡すキーと値のプロパティのカンマ区切りのリスト。形式は xxKey=xxValue, xxKey=xxValue。以下のプロパティを指定する必要がある。
  • java.naming.provider.url - 使用するサービス プロバイダのコンフィグレーション情報を指定するためのプロパティ。このプロパティの値には URL 文字列を含める必要がある。次に例を示す。
  • iiops://localhost:7002

  • java.naming.factory.initial - 使用する初期コンテキスト ファクトリを指定するためのプロパティ。このプロパティの値は、初期コンテキストを作成するファクトリの完全修飾クラス名にする。次に例を示す。
  • weblogic.jndi.WLInitialContextFactory

JNDIUserName
JNDI にアクセスするセキュリティ レルム内の有効なユーザの ID。
JNDIPassword
JNDIUserName 属性で指定したユーザ名のパスワード。
JMSExceptionReconnectAttempts
JMS システムが Kodo に深刻な接続エラーを通知した場合に試行される再接続の回数。デフォルトは 0 で、エラーはログに記録されるが再接続は試行されない。

詳細については、以下のトピックを参照してください。

障害発生時の JMS 接続回復のコンフィグレーション

通常、複数ノード ドメインの各 WebLogic Server インスタンスに含まれている WebLogic Security サービスは起動時に JMS サーバに接続します。RDBMS セキュリティ ストアを使用するセキュリティ プロバイダがセキュリティ データを変更した場合は、JMS を介してすべての WebLogic Server インスタンスに通知され、各 WebLogic Server インスタンスの WebLogic Security サービスで使用されているローカル キャッシュは、その変更を反映するために同期化されます。

正常に起動された WebLogic Server インスタンスで JMS 接続が失敗すると、そのサーバ インスタンスに関連付けられた WebLogic Security サービスは JMS 接続の回復プロセスを開始します。回復プロセスでは次の再接続の試行までに 1 秒間スリープします。JMSExceptionReconnectAttempts プロパティでコンフィグレーションされた再接続の試行回数に達した後も JMS 接続エラーが続く場合、回復プロセスは停止します。再接続はそれ以上試行されません。つまり、ある WebLogic Server インスタンスでセキュリティ データが変更されても、他の WebLogic Server インスタンスの WebLogic Security サービスで管理されているローカル キャッシュはその変更を反映するために同期化されません。ただし、他の手段 (サーバの再起動など) で JMS 接続が正常に回復されると、それらのキャッシュは同期化されます。

WebLogic Server インスタンスの起動時に JMS 接続が正常に開始されない場合は、再接続を試行するタイマー タスクが自動的に開始されます。接続が正常に行われると、タイマー タスクは取り消されます。このタイマー タスクに関する 2 つのシステム プロパティをコンフィグレーションできます。

上記のシステム プロパティで指定した値を掛け合わせると、接続ポーリングの最大期間を計算できます。たとえば、2 つのプロパティのデフォルト値を掛け合わせると (1000 ミリ秒の遅延に 3600 回の再接続試行回数を掛ける)、最大ポーリング期間は 1 時間となります。

 


RDBMS セキュリティ ストアを使用するドメインのアップグレード

RDBMS セキュリティ ストアを使用するドメインをアップグレードするには、RDBMS セキュリティ ストアをコンフィグレーションした新しいドメインを作成することをお勧めします。新しいドメインを作成した後で、古いドメインのセキュリティ レルムからセキュリティ データをエクスポートして、新しいドメインのセキュリティ レルムにインポートする必要があります。RDBMS セキュリティ ストアを使用するドメインのセキュリティ レルムにセキュリティ データをインポートすると、RDBMS セキュリティ ストアを使用するセキュリティ プロバイダのデータは、自動的にそのデータストアにロードされます。RDBMS セキュリティ ストアを使用しないセキュリティ プロバイダのデータは、それらのプロバイダが通常デフォルトで使用するストアに自動的にインポートされます。

セキュリティ レルムから別のセキュリティ レルムに個々のセキュリティ プロバイダを選択的に移行することもできます。ただし、RDBMS セキュリティ ストアを使用するドメインにセキュリティ データを移行する場合は、セキュリティ レルムのデータを 1 回の操作で移行することをお勧めします。

セキュリティ レルムの移行の詳細については、以下のトピックを参照してください。


  ページの先頭       前  次