ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Serverの保護
11g リリース1(10.3.6)
B61617-04
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

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

WebLogic Serverでは、認可プロバイダ、ロール・マッピング・プロバイダ、資格証明マッピング・プロバイダ、および証明書レジストリ・プロバイダで使用されるデータ・ストアとして、外部のRDBMSを使用するオプションが提供されています。

RDBMSセキュリティ・ストアと呼ばれるこのデータ・ストアを本番環境で使用すると、SAML 2.0セキュリティ・プロバイダで管理するデータを、それらを共有するすべてのWebLogic Serverインスタンスの間で同期させることができます。(開発環境のみの場合は、SAML 2.0セキュリティ・プロバイダでセキュリティ・ストアとしてLDAPを使用します)。


注意:

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

以下の節では、RDBMSセキュリティ・ストアの構成および管理方法について説明します。

RDBMSセキュリティ・ストアとして機能する、WebLogic Serverでサポートされる特定のデータベース・システムの最新の詳細は、Oracle WebLogic Serverの新機能のサポートされる構成に関する項を参照してください。

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

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

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

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

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

RDBMSセキュリティ・ストアの構成

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

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

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

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

  • 構成ウィザードを使用する - RDBMSセキュリティ・ストアを構成するオプションが用意されています。このオプションは「環境とサービスの設定のカスタマイズ」ページにあります。

    このオプションを選択すると、構成ウィザードには以下の操作が可能な後続のウィンドウが表示されます。

    1. RDBMSセキュリティ・ストアとして使用する特定のデータベース・システムを選択する

    2. データベース接続設定を構成する

    3. データベース接続をテストする

  • WebLogic Scripting Tool (WLST)オフラインを使用します。RDBMSセキュリティ・ストアを作成および構成するためのオプションはRDBMSSecurityStoreMBeanで提供されています。

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

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

構成ウィザードまたはWLSTでRDBMSセキュリティ・ストアを構成するときに、以下の項目を指定する必要があります。

  • RDBMSのタイプ

    RDBMSセキュリティ・ストアを格納するために以下のRDBMSシステムがサポートされています。

    • Oracle 9i、10g、および11g

    • MS-SQL 2000および2005

    • DB2 9.2および9.5


      注意:

      構成ウィザードを使用してRDBMSセキュリティ・ストアを構成する場合、使用するデータベースを選択するためのドロップダウン・リストが表示されます。ドロップダウン・リストに表示されるデータベースは、RDBMSセキュリティ・ストアでサポートされるものだけではありません。この目的でサポートされているデータベースを選択するようにしてください(Oracle WebLogic Serverの新機能のサポート対象構成に関する項を参照)。

  • RDBMSに接続するためのJDBCドライバとクラス名

  • RDBMSの名前、ホスト、ポート、およびURL

  • RDBMSシステムにアクセスできるドメイン・ユーザーのユーザー名とパスワード


    警告:

    この項で提供されるWLSTの例では、わかりやすいように、RDBMSシステム・ユーザーのユーザー名とパスワードの資格証明をクリア・テキストで渡しています。通常はWLSTコマンドにクリア・テキストのパスワードを入力しないでください。特に、クリア・テキストのパスワードが含まれる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.setPassword('welcome1') 
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.setPassword('welcome1') 
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タイプ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.setPassword('welcome1') 
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タイプ4 JDBCドライバの接続プロパティの指定については、『Oracle WebLogic Serverタイプ4 JDBCドライバ』の「DB2ドライバ」を参照してください。

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

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

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

  • RDBMSSecurityStoreMBeanで設定できる属性の詳細は、Oracle WebLogic Server MBeanリファレンスRDBMSSecurityStoreMBeanに関する項を参照してください。

  • Kodo DataDourceのデフォルトのデータベース接続プロパティについては、Kodo JPA/JDOリファレンス・ガイドの「JDBC」の章のKodo DataSourceの使用に関する項を参照してください。

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

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

構成ウィザードでのRDBMSセキュリティ・ストアの構成については、『構成ウィザードによるドメインの作成』のオプションの構成の選択に関する項を参照してください。

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

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

WL_HOME/server/lib 

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

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

表10-1 RDBMSデータ・ストア表を作成および削除するためのSQLスクリプト

RDBMSシステム データ・ストア表の作成 データ・ストア表の削除

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

Derby

rdbms_security_store_derby.sql

rdbms_security_store_derby_remove.sql


RDBMSセキュリティ・ストアのJMSトピックの構成

複数のWebLogic Serverインスタンスを含むドメイン、またはクラスタ内にRDBMSセキュリティ・ストアを構成する場合は、以下のタスクを実行することを強くお薦めします。

  1. そのドメインでJMS通知を有効にします。

  2. RDBMSセキュリティ・ストアで使用できるJMSトピックを構成します。

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


警告:

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

JMS通知を有効にするには、RDBMSセキュリティ・ストアが構成されているドメインを起動して、以下のいずれかの方法でRDBMSSecurityStoreMBeanの属性を構成します。

  • WebLogic Scripting Tool

  • 管理コンソールの「セキュリティ・レルム」「レルム名」「RDBMSセキュリティ・ストア」ページ

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

表10-2 JMSトピックを構成するためのRDBMSSecurityStoreMBeanの属性

属性名 説明
JMSTopic

Kodoリモート・コミット・プロバイダが通知をパブリッシュしたり、他のJVMから送信された通知をサブスクライブしたりするJMSトピック。ターゲットとなるJMSトピックはあらかじめデプロイされている必要があります。

JMSTopicConnectionFactory

JMSトピックを検索するために使用するjavax.jms.TopicConnectionFactoryインスタンスのJNDI名。

『Oracle WebLogic Server 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で、エラーはログに記録されるが再接続は試行されません。


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

  • Oracle WebLogic Server管理コンソール・オンライン・ヘルプのトピックの構成に関する項

  • 『Oracle WebLogic Server JMSの構成と管理』の「基本JMSシステム・リソースの構成」

  • Oracle WebLogic Server管理コンソール・オンライン・ヘルプのRDBMSセキュリティ・ストアの構成に関する項

  • Oracle WebLogic Server MBeanリファレンスのRDBMSSecurityStoreMBeanに関する項

障害発生時のJMS接続リカバリの構成

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

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

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

  • com.bea.common.security.jms.initialConnectionRecoverInterval

    接続リカバリ・タスクを実行するまでの遅延を指定します(ミリ秒単位)。デフォルト値は1000で、接続リカバリ・プロセスは1秒間遅延した後に実行されます。

  • com.bea.common.security.jms.initialConnectionRecoverAttempts

    タイマー・タスクを取り消すまでに試行される再接続の最大回数を指定します。デフォルト値は3600で、再接続が3600回試行されるとタイマー・タスクは取り消されます。それ以上の再接続は試行されません。

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

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

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

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

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