![]() ![]() ![]() ![]() |
WebLogic Server では、認可プロバイダ、ロール マッピング プロバイダ、資格マッピング プロバイダ、および証明書レジストリ プロバイダで使用されるデータストアとして、外部の RDBMS を使用するオプションが提供されています。このデータストアは RDBMS セキュリティ ストアと呼ばれますが、クラスタなどのドメイン内の複数の WebLogic Server インスタンスで SAML 2.0 サービスを使用する場合には強くお勧めします。
注意 : | RDBMS セキュリティ ストアを使用するには、まず、ドメインを作成して外部 RDBMS サーバをコンフィグレーションします。ドメインを起動する前に、RDBMS セキュリティ ストアで必要になるテーブルをデータストア内に作成します。WebLogic Server インストール ディレクトリには、サポート対象のデータベースごとに、これらのテーブルを作成する一連の SQL スクリプトが含まれています。 |
以下の節では、RDBMS セキュリティ ストアのコンフィグレーションおよび管理方法について説明します。
RDBMS セキュリティ ストアとして機能する、WebLogic Server でサポートされる特定のデータベース システムの最新の詳細については、「WebLogic Server でサポート対象のコンフィグレーション」を参照してください。
以下のセキュリティ プロバイダは、ドメイン内に RDBMS セキュリティ ストアがコンフィグレーションされている場合は、そのストアを使用します。
ドメイン内に RDBMS セキュリティ ストアがコンフィグレーションされている場合、セキュリティ レルム内に作成されている上記のいずれかのセキュリティ プロバイダのインスタンスは、自動的に RDBMS セキュリティ ストアのみをデータストアとして使用し、組み込み LDAP サーバは使用しません。ドメイン内にコンフィグレーションされている上記のリスト以外の WebLogic セキュリティ プロバイダは、それぞれのデフォルト ストアを使用します。たとえば、WebLogic 認証プロバイダは組み込み LDAP サーバを使用します。
RDBMS セキュリティ ストアはドメインの作成時にコンフィグレーションすることをお勧めします。このプロセスを簡素化するようにコンフィグレーション ウィザードが改良されました。このユーティリティには RDBMS 接続をテストするオプションが含まれており、ドメインの起動時にドメインへのアクセスに必要なセキュリティ ポリシーが確実に取得されるようになります。
コンフィグレーション ウィザードに加えて、RDBMSSecurityStore MBean も用意されています。WebLogic Scripting Tool (WLST) から RDBMS セキュリティ ストアをコンフィグレーションするためのインタフェースです。
ドメインで RDBMS セキュリティ ストアを作成してコンフィグレーションするには、以下の節で説明するタスクを完了します。
ドメインで RDBMS セキュリティ ストアを使用するには、ドメインの作成時に RDBMS セキュリティ ストアをコンフィグレーションすることをお勧めします。RDBMS セキュリティ ストアを使用するように既存のドメインを変更することはできますが、データベース接続が正しくコンフィグレーションされていない場合、ドメインへのアクセスを許可するために必要なポリシーが使用できず、ドメインを使用できなくなる可能性があるため、お勧めしません。
WebLogic Server には、RDBMS セキュリティ ストアをコンフィグレーションできるドメインの作成方法として 2 通りの方法があります。
どちらの方法を選んでドメインを作成する場合でも、以下の節で説明するように、RDBMS セキュリティ ストアとして機能するデータベースの接続プロパティを必ずコンフィグレーションしてください。
コンフィグレーション ウィザードまたは WLST で RDBMS セキュリティ ストアをコンフィグレーションするときに、以下の項目を指定する必要があります。
RDBMS セキュリティ ストアを格納するために以下の RDBMS システムがサポートされています。
注意 : | コンフィグレーション ウィザードを使用して RDBMS セキュリティ ストアをコンフィグレーションする場合、使用するデータベースを選択するためのドロップダウン リストが表示されます。ドロップダウン リストに表示されるデータベースは、RDBMS セキュリティ ストアでサポートされるものだけではありません。目的に沿ったデータベースを選択するようにしてください (最新のリストについては、「WebLogic Server でサポート対象のコンフィグレーション」を参照してください)。 |
JDBC ドライバの接続プロパティ属性で指定するパラメータはカンマ区切りのリストにする必要があります。以下のサンプルでは、WLST を使用して Oracle、MS-SQL、および DB2 のデータベース接続プロパティをコンフィグレーションする方法を示します。
コード リスト 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')
コード リスト 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')
コード リスト 10-3 に、RDBMS セキュリティ ストア用に DB2 をコンフィグレーションするサンプルを示します。
注意 : | DB2 を選択する場合は、WebLogic Server で提供されている DB2 用の WebLogic Type 4 JDBC ドライバを選択するオプションがあります。ただし、この JDBC ドライバを使用する場合は、追加のプロパティ BatchPerformanceWorkaround を指定して true に設定する必要があります。このコンフィグレーションで BatchPerformanceWorkaround を true に設定しない場合、WebLogic Server は起動に失敗し、SecurityServiceException メッセージが生成されます。 |
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
実装のプロパティで設定される属性に変換されます。
これらの属性の詳細については、以下のトピックを参照してください。
http://e-docs.bea.com/kodo/docs41/full/html/ref_guide_dbsetup.html#ref_guide_dbsetup_builtin
コンフィグレーション ウィザードで RDBMS セキュリティ ストアをコンフィグレーションする途中で、データベース接続をテストするオプションが表示されます。接続が適切に設定されているかどうか検証できるため、このオプションを使用することを強くお勧めします。データベース接続に問題があると、ドメインへのアクセスを制御するセキュリティ プロバイダが必要なセキュリティ ポリシーを取得できない場合に、ドメインを起動できなくなる可能性があります。
コンフィグレーション ウィザードでの RDBMS セキュリティ ストアのコンフィグレーションについては、『コンフィグレーション ウィザードを使用した WebLogic ドメインの作成』の「環境のカスタマイズ」を参照してください。
ドメインを起動する前に、データベース管理者は RDBMS セキュリティ ストアで使用されるデータベース内に RDBMS テーブルを作成する SQL スクリプトを実行する必要があります。以下の WebLogic Server インストール ディレクトリには、サポートされる各 RDBMS システム用に、これらのテーブルを作成および削除するための一連の SQL スクリプトが用意されています。
RDBMS セキュリティ ストアとして機能するデータベース用の該当する SQL スクリプトを実行するときは、必ず、ドメイン作成時に RDBMS に対して指定したものと同じ接続プロパティ (アクセスするユーザの資格、データベース URL など) を指定してください。
表 10-1 に、各 SQL スクリプトの名前を示します。
複数の WebLogic Server インスタンスを含むドメイン、またはクラスタ内に RDBMS セキュリティ ストアをコンフィグレーションする場合は、以下のタスクを実行することを強くお勧めします。
JMS 通知を使用すると、RDBMS セキュリティ ストアに格納され、レルム内のセキュリティ プロバイダによって管理されるセキュリティ データを、ドメイン内のすべてのサーバ インスタンスにわたって同期化することができます。
警告 : | RDBMS セキュリティ ストアが複数サーバのドメインやクラスタ化されたドメインでコンフィグレーションされているときに、そのストアで使用できる JMS トピックをコンフィグレーションしない場合は、セキュリティ ポリシーの作成やセキュリティ コンフィグレーションの更新を慎重に行う必要があります。JMS トピックをコンフィグレーションしない場合、セキュリティの更新内容に従ってすべてのサーバ インスタンスが一貫して機能するにはドメインの再起動が必要になる可能性があります。 |
JMS 通知を有効にするには、RDBMS セキュリティ ストアがコンフィグレーションされているドメインを起動して、以下のいずれかの方法で RDBMSSecurityStore MBean の属性をコンフィグレーションします。
JMS 通知を有効にするために設定する必要のある RDBMSSecurityStore MBean の属性について表 10-2 で説明します。
javax.jms.TopicConnectionFactory のインスタンスである WebLogic JMS 接続ファクトリ weblogic.jms.ConnectionFactory について説明している。接続ファクトリのコンフィグレーションについては、この節を参照。
|
|
通常、複数ノード ドメインの各 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 セキュリティ ストアを使用するドメインにセキュリティ データを移行する場合は、セキュリティ レルムのデータを 1 回の操作で移行することをお勧めします。
セキュリティ レルムの移行の詳細については、以下のトピックを参照してください。
![]() ![]() ![]() |