ORACLE JAPAN Server Release 6.1

 

  |  

  WebLogic Server ホーム   |     管理者ガイド   |   前へ   |   次へ   |   目次   |   索引   |   PDF 版

セキュリティの管理

 

以下の節では、WebLogic Server でセキュリティを実装する方法について説明します。

 


セキュリティのコンフィグレーション手順

WebLogic Server のデプロイメントのセキュリティは、主にそのデプロイメントに合わせたセキュリティ ポリシーを定義する属性をコンフィグレーションすることで実装します。WebLogic Server には、デプロイメントのセキュリティ ポリシーを定義するための Administration Console が用意されています。Administration Console を使用して、デプロイメントの次の要素にセキュリティ固有の値を指定します。

セキュリティ機能は互いに関連しているので、セキュリティをコンフィグレーションする場合に何から始めるべきか判断しにくいものです。実際、WebLogic Server のデプロイメントのセキュリティを定義する場合には、同じ作業を繰り返すこともあります。手順は 1 通りではありませんが、次の手順に従うことをお勧めします。

  1. system ユーザのパスワードを変更して、WebLogic Server のデプロイメントを保護します。 システム パスワードの変更を参照してください。

  2. セキュリティ レルムを指定します。WebLogic Server のセキュリティ レルムは、デフォルトでファイル レルムです。ただし、代替セキュリティ レルムやカスタム セキュリティ レルムを指定することもできます。 セキュリティ レルムの指定を参照してください。

  3. セキュリティ レルムのユーザを定義します。セキュリティ レルムにグループを実装すると、ユーザを組織できます。 ユーザの定義を参照。

  4. WebLogic Server のデプロイメントのリソースの ACL およびパーミッションを定義します。 ACL の定義を参照してください。

  5. SSL プロトコルを実装することで、クライアントと WebLogic Server との間のネットワーク接続を保護します。SSL を実装すると、WebLogic Server は信頼された認証局によって発行されたデジタル証明書を使用して、クライアントを認証します。この手順は省略可能ですが、実行することをお勧めします。 SSL プロトコルのコンフィグレーションを参照してください。

  6. 相互認証を実装することで、WebLogic Server デプロイメントをさらに保護します。相互認証を実装すると、WebLogic Server はクライアントに対して自己認証してから、クライアントを認証し、WebLogic Server に対して自己認証しなければなりません。この手順も省略可能ですが、実行することをお勧めします。 相互認証のコンフィグレーションを参照してください。

WebLogic Server のセキュリティ機能の詳細については、「WebLogic Security の概要」と「セキュリティの基礎概念」を参照してください。

注意: この節のコンフィグレーション手順はすべて Administration Console を使用して行います。

セキュリティ ロールの WebLogic EJB への割り当てについては、「WebLogic Server 6.1 デプロイメント プロパティ」を参照してください。

WebLogic Web アプリケーションでのセキュリティの詳細については、『Web アプリケーションのアセンブルとコンフィグレーション』を参照してください。

 


システム パスワードの変更

インストール中に、system ユーザのパスワードを指定します。指定されたパスワードは、WebLogic Server の system ユーザに関連付けられ、\wlserver6.1\config\domain ディレクトリの fileRealm.properties ファイルに保存されます。domain は、インストール時に WebLogic 管理ドメイン名として指定された名前です。指定されたパスワードは、ドメインの管理サーバと、その管理サーバに関連付けられているすべての管理対象サーバに対応しています。

注意: system ユーザは、WebLogic Server を起動できる唯一のユーザ アカウントです。

system ユーザのパスワードは、WebLogic Server がハッシュを適用するときに暗号化され、さらに保護されます。セキュリティを強化するため、インストール時に設定したシステム パスワードを頻繁に変更することをお勧めします。WebLogic Server の各デプロイメントでは、ユニークなパスワードが必要です。

システム パスワードを変更するには、次の手順に従います。

  1. Administration Console の [セキュリティ|ユーザ] をクリックして [ユーザ] を開きます。

  2. [ユーザ パスワードの変更] の [名前] 属性フィールドで system と入力します。

  3. WebLogic Server のインストール時に指定したパスワードを [古いパスワード] 属性フィールドに入力します。

  4. [新しいパスワード] 属性フィールドに新しいパスワードを入力します。

  5. [パスワードの確認] 属性フィールドに新しいパスワードを再び入力します。

  6. [変更] をクリックします。

  7. [変更は、レルムの実装に保存しなければなりません] リンクをクリックします。

  8. 変更を送信します。

  9. WebLogic Server を再起動します。

あるドメインの管理サーバと管理対象サーバを使用する場合、管理対象サーバは常にそのドメインの管理サーバのパスワードを使用しなければなりません。管理サーバのパスワードは、常に Administration Console を使用して変更してください。パスワードを変更したら、そのドメイン内のすべてのサーバを再起動します。次の手順に従って操作します。

  1. ドメイン内のすべての管理対象サーバをシャットダウンします。

  2. 管理サーバの system ユーザのパスワードを、この節の手順に従って変更します。

  3. 管理サーバを停止します。

  4. 新しい system ユーザのパスワードを使用して管理サーバを再起動します。

  5. 新しい system ユーザのパスワードを使用して管理コンソールにログインします。

  6. ドメイン内のすべての管理対象サーバを再起動します。

WebLogic パスワードの機密性を維持することは、WebLogic Server のデプロイメントとデータの安全性を確保する上で極めて重要です。デプロイメントとデータを保護するために、WebLogic Server のパスワードの機密性を維持することをお勧めします。

 


セキュリティ レルムの指定

この節では、WebLogic Server デプロイメントのセキュリティ レルムをコンフィグレーションする方法について説明します。セキュリティ レルムの概要と WebLogic Server での使用方法については、『WebLogic Security プログラマーズ ガイド』の「セキュリティ レルム」を参照してください。以下の節では、セキュリティ レルムの指定について説明します。

ファイル レルムのコンフィグレーション

WebLogic Server のセキュリティ レルムは、デフォルトでファイル レルムです。ファイル レルムを使用する前に、ファイル レルムの使用を管理する属性を定義する必要があります。これらの属性は、Administration Console の [セキュリティ] ウィンドウの [ファイル レルム] タブで設定します。

次の表では、[ファイル レルム] タブの各属性について説明します。

表14-1 ファイル レルムの属性

属性

説明

[キャッシング レルム]

使用されるキャッシング レルムの名前。

  • ファイル レルムを使用するときには、この属性を [(なし)] に設定しなければならない。

  • 代替セキュリティ レルムまたはカスタム セキュリティ レルムを使用する場合は、この属性を、使用するキャッシング レルムの名前に設定する。コンフィグレーションされているキャッシング レルムのリストはプルダウン メニューに表示される。

[最大ユーザ数]

ファイル レルムで使用するユーザの最大数。ファイル レルムのユーザ数は 10,000 以下。この属性の最小値は 1、最大値は 10,000、デフォルト値は 1,000。

[最大グループ数]

ファイル レルムで使用するグループの最大数。この属性の最小値は 1、最大値は 10,000、デフォルト値は 1,000。

[最大 ACL]

ファイル レルムで使用する ACL の最大数。この属性の最小値は 1、最大値は 10,000、デフォルト値は 1,000。


 

ユーザ、グループ、および ACL のキャッシュをクリアするには、[Manage Caching Realm] ボタンを使用します。

警告: fileRealm.properties ファイルが壊れたら、WebLogic Server のセキュリティ情報を再コンフィグレーションしなければなりません。WebLogic Server は、fileRealm.properties ファイルがないと起動できません。

fileRealm.properties ファイルには、WebLogic Server を起動するためのデフォルト ACL が含まれています。カスタム セキュリティ レルムは起動シーケンスでは呼び出されないので、カスタム セキュリティ レルムを記述する場合でも、WebLogic Server を起動するために fileRealm.properties ファイルは必要となります。

したがって、次の手順を実行することをお勧めします。

fileRealm.properties ファイルのバックアップを作成し、安全な場所に保管します。

WebLogic Server デプロイメントの管理者は読み書き特権を持ち、その他のユーザは何の特権も持たないように、fileRealm.properties ファイルにパーミッションを設定します。

注意: また、ファイル レルム用の SerializedSystemIni.dat ファイルのバックアップも作成する必要があります。SerializedSystemIni.dat ファイルの詳細については、「 パスワードの保護」を参照してください。

ファイル レルムの代わりに WebLogic Server で提供される代替セキュリティ レルムまたはカスタム セキュリティ レルムを使用する場合は、必要なレルムに合わせて属性を設定し、WebLogic Server を再起動します。代替セキュリティ レルムを使用する場合は、キャッシング レルムを有効にする必要があります。

WebLogic Server のセキュリティ レルムの詳細については、「セキュリティ レルム」を参照してください。

キャッシング レルムのコンフィグレーション

キャッシング レルムはファイル レルム、代替セキュリティ レルム、またはカスタム セキュリティ レルムと連携し、適切な認証および認可を得たクライアントのリクエストを遂行します。キャッシング レルムは、成功したレルム ルックアップと失敗したレルム ルックアップの両方の結果を格納します。キャッシング レルムは、ユーザ、グループ、パーミッション、ACL、および認証リクエストのキャッシュを別々に管理します。キャッシング レルムによって、ルックアップがキャッシュされ、ほかのセキュリティ レルムへの呼び出し数が減るので、WebLogic Server のパフォーマンスが向上します。WebLogic Server のセキュリティ レルムの詳細については、「セキュリティ レルム」を参照してください。

キャッシング レルムは、WebLogic Server のインストール時に自動的にインストールされます。キャッシュはその他のセキュリティ レルムに権限を委託するよう設定されますが、キャッシュは有効化されていません。Administration Console を使用して、キャッシュを有効化する必要があります。代替セキュリティ レルムまたはカスタム セキュリティ レルムを使用する場合は、キャッシング レルムをコンフィグレーションして有効にする必要があります。

キャッシュを有効化すると、キャッシング レルムによって、レルム ルックアップの結果がキャッシュに保存されます。ルックアップの結果は、存続時間(TTL)属性に定義された秒数が経過する(ルックアップの結果の有効期限が切れる)か、またはキャッシュがいっぱいになるまで、キャッシュ内に残ります。キャッシュがいっぱいになると、ルックアップの結果はキャッシュ内で最も古い結果と置き換えられます。TTL 属性によって、キャッシュされたオブジェクトの有効期間が決定されます。これらの属性に設定する値が大きいほど、キャッシング レルムが二次セキュリティ レルムを呼び出す回数が減ります。呼び出し回数が減ると、パフォーマンスは向上します。パフォーマンスが向上する代わりに、基のセキュリティ レルムへの変更は、キャッシュされたオブジェクトの有効期間が切れるまで認識されません。

注意: セキュリティ レルムからオブジェクトを取得した場合、オブジェクトはオブジェクトのスナップショットを反映しています。オブジェクトを更新するには、そのオブジェクトの get() メソッドをもう一度呼び出します。たとえば、グループのメンバシップは、getGroup() メソッドを呼び出してセキュリティ レルムからグループを取得したときに設定されます。グループのメンバを更新するには、getGroup() メソッドをもう一度呼び出さなければなりません。

デフォルトでは、キャッシング レルムは、代替セキュリティ レルムが大文字/小文字を区別することを前提にして処理します。大文字/小文字を区別するセキュリティ レルムでは、たとえば bill というユーザ名のオーナと Bill というユーザ名のオーナは、別々のユーザとして扱われます。大文字/小文字を区別しないセキュリティ レルムの例として、Windows NT セキュリティ レルムと LDAP セキュリティ レルムが挙げられます。大文字/小文字を区別しないセキュリティ レルムを使用する場合は、[キャッシュで大文字/小文字を区別] 属性を無効化しなければなりません。この属性を設定すると、キャッシング レルムでは、大文字/小文字を区別して比較した場合に WebLogic Server がセキュリティ レルムの正しい結果を返すように、ユーザ名が小文字に変換されます。大文字/小文字を区別するセキュリティ レルムのユーザまたはグループを定義したり参照したりする場合には、ユーザ名を小文字で入力します。

キャッシング レルムをコンフィグレーションするには、次の操作を行います。

  1. Administration Console の左ペインで [セキュリティ|キャッシング レルム] ノードを選択します。

  2. Administration Console の右ペインで、[新しい Caching Realm のコンフィグレーション] リンクをクリックします。

  3. [キャッシング レルム] ウィンドウの [コンフィグレーション] タブにある [一般] タブで属性を定義します。

    次の表では、[一般] タブで設定する属性について説明します。

    表14-2 [一般] タブのキャッシング レルム属性

    属性

    説明

    [名前]

    Administration Console で定義されているアクティブなセキュリティ レルムを表示する。この属性は変更できない。

    [基本レルム]

    キャッシング レルムと一緒に使用されている代替セキュリティ レルムまたはカスタム セキュリティ レルムのクラス名。コンフィグレーションされているレルムの名前はプルダウン メニューに表示される。

    [キャッシュで大文字/小文字を区別]

    指定されたセキュリティ レルムで大文字/小文字を区別するかどうかを定義する。デフォルトでは、この属性は有効、つまり、レルムで大文字/小文字を区別する。大文字/小文字を区別しないセキュリティ レルム(Windows NT および LDAP セキュリティ レルムなど)を使用するには、この属性を無効化しなければならない。


     

  4. [作成] をクリックします。

  5. [キャッシング レルム] ウィンドウの [コンフィグレーション] タブにある [ACL] タブの属性に値を定義して、ACL キャッシュをコンフィグレーションして有効化します。

    次の表では、[ACL] タブで設定する属性について説明します。

    表14-3 ACL キャッシュの属性

    属性

    説明

    [ACL キャッシュを有効化]

    ACL キャッシュを有効化するためのオプション。

    [ACL キャッシュサイズ]

    キャッシュする ACL ルックアップの最大数。ルックアップのパフォーマンスを最大限に引き出すには、この属性は素数でなければならない。デフォルトでは 211。

    [成功時の ACL キャッシュ生存時間]

    成功したルックアップの結果を保持する秒数。デフォルトでは 60 秒。

    [失敗時の ACL キャッシュ生存時間]

    失敗したルックアップの結果を保持する秒数。デフォルトでは 10 秒。


     

  6. 変更を保存するには、[適用] ボタンをクリックします。

  7. 認証キャッシュを有効化してコンフィグレーションするには、[キャッシング レルム] ウィンドウの [コンフィグレーション] タブにある [認証] タブの属性に値を定義します。

    次の表では、[認証] タブで設定する属性について説明します。

    表14-4 認証キャッシュの属性

    属性

    説明

    [認証キャッシュを有効化]

    認証キャッシュを有効化するためのオプション。

    [認証キャッシュ サイズ]

    キャッシュする認証リクエストの最大数。ルックアップのパフォーマンスを最大限に引き出すには、この属性は素数でなければならない。デフォルトでは 211。

    [成功時の認証キャッシュ生存時間]

    成功したルックアップの結果を保持する秒数。デフォルトでは 60 秒。

    [失敗時の認証キャッシュ生存時間]

    失敗したルックアップの結果を保持する秒数。デフォルトでは 10 秒。


     

  8. 変更を保存するには、[適用] ボタンをクリックします。

  9. グループ キャッシュを有効化してコンフィグレーションするには、[キャッシング レルム] ウィンドウの [コンフィグレーション] タブにある [グループ] タブの属性に値を定義します。

    次の表では、[グループ] タブで設定する属性について説明します。

    表14-5 グループ キャッシュの属性

    属性

    説明

    [グループ キャッシュを有効化]

    グループ キャッシュを有効化するためのオプション。

    [グループ キャッシュ サイズ]

    キャッシュするグループ ルックアップの最大数。ルックアップのパフォーマンスを最大限に引き出すには、この属性は素数でなければならない。デフォルトでは 211。

    [成功時のグループ キャッシュ生存時間]

    成功したルックアップの結果を保持する秒数。デフォルトでは 60 秒。

    [失敗時のグループ キャッシュ生存時間]

    失敗したルックアップの結果を保持する秒数。デフォルトでは 10 秒。

    [グループ メンバシップ キャッシュ生存時間]

    更新前にグループのメンバを保存する秒数。デフォルトでは 300 秒。


     

  10. 変更を保存するには、[適用] ボタンをクリックします。

  11. ユーザ キャッシュを有効化してコンフィグレーションするには、[キャッシング レルム] ウィンドウの [コンフィグレーション] タブにある [ユーザ] タブの属性に値を定義します。

    次の表では、[ユーザ] タブで設定する属性について説明します。

    表14-6 ユーザ キャッシュの属性

    属性

    説明

    [ユーザ キャッシュを有効化]

    ユーザ キャッシュを有効化するためのオプション。

    [ユーザ キャッシュ サイズ]

    キャッシュするユーザ ルックアップの最大数。ルックアップのパフォーマンスを最大限に引き出すには、この属性は素数でなければならない。デフォルトでは 211。

    [成功時のユーザ キャッシュ生存時間]

    成功したルックアップの結果を保持する秒数。デフォルトでは 60 秒。

    [失敗時のユーザ キャッシュ生存時間]

    失敗したルックアップの結果を保持する秒数。デフォルトでは 10 秒。


     

  12. 変更を保存するには、[適用] ボタンをクリックします。

  13. パーミッション キャッシュを有効化してコンフィグレーションするには、[キャッシング レルム] ウィンドウの [コンフィグレーション] タブにある [パーミッション] タブの属性に値を定義します。

    次の表では、[パーミッション] タブの各属性について説明します。

    表14-7 パーミッション キャッシュの属性

    属性

    説明

    [パーミッション キャッシュを有効化]

    パーミッション キャッシュを有効化するためのオプション。

    [パーミッション キャッシュ サイズ]

    キャッシュするパーミッション ルックアップの最大数。ルックアップのパフォーマンスを最大限に引き出すには、この属性は素数でなければならない。デフォルトでは 211。

    [成功時のパーミッション キャッシュ生存時間]

    成功したルックアップの結果を保持する秒数。デフォルトでは 60 秒。

    [失敗時のパーミッション キャッシュ生存時間]

    失敗したルックアップの結果を保持する秒数。デフォルトでは 10 秒。


     

  14. 変更を保存するには、[適用] ボタンをクリックします。

  15. キャッシング レルムの属性を定義した後は、WebLogic Server を再起動します。

LDAP セキュリティ レルムのコンフィグレーション

LDAP セキュリティ レルムでは、Lightweight Directory Access Protocol(LDAP)サーバを使用して認証を行います。このサーバを使用すると、組織内のすべてのユーザを LDAP ディレクトリだけで管理できます。LDAP セキュリティ レルムは、Open LDAP、Netscape iPlanet、Microsoft Site Server、および Novell NDS をサポートしています。

このリリースの WebLogic Server では、LDAP セキュリティ レルムを以下の 2 つのバージョンから選択できます。

注意: LDAP レルム V1 を使用する場合は、Administration Console を使用して LDAP ディレクトリ サーバに格納されているユーザおよびグループのメンバーを表示できます。ただし、LDAP レルム V2 を使用する場合は、LDAP ディレクトリ サーバに格納されているグループのみ Administration Console を使用して表示できます。

ユーザまたはグループの追加や削除、あるいはグループのメンバーの追加など、ユーザおよびグループを管理するためには、LDAP サーバで利用可能な管理ツールを使用する必要があります。LDAP ディレクトリ ストアで変更を行った場合は、ユーザ キャッシュおよびグループ キャッシュをリセットすると、Administration Console ですぐにその変更を表示できます。

LDAP セキュリティ レルムのパフォーマンスを向上させるためのヒントを次に示します。

LDAP セキュリティ レルムのコンフィグレーションでは、LDAP サーバと通信するために LDAP セキュリティ レルムを WebLogic Server で有効化する属性と、ユーザおよびグループを LDAP ディレクトリに保存する方法を指定する属性を定義します。LDAP ツリーおよびスキーマは、LDAP サーバごとに異なります。したがって、LDAP レルム V2 では、サポートされている LDAP サーバのデフォルト属性を定義するテンプレートのセットが提供されます。

LDAP セキュリティ レルム使用時の制限

LDAP セキュリティ レルムには以下の制限があります。

LDAP ディレクトリ内でのユーザおよびグループの位置

LDAP セキュリティ レルムは、そのセキュリティ レルムで使用される LDAP ディレクトリのどこにユーザとグループが格納されているのかを知る必要があります。そのためには、ユーザとグループが存在する LDAP ディレクトリの識別名(DN)を指定します。

LDAP では、DN はリーフ ノードから始まり、ルート ノードに向かいます。 たとえば、次のようになります。

root
|
|
|
o=acme.com
|
|
|
ou=Groups

このブランチの DN は、 ou=Groups, o=acme.com として指定されます。

LDAP レルム V1 では、DN は、セキュリティ レルムをコンフィグレーションする際に、 GroupDN 属性と UserDN 属性を介して指定します。ただし、DN を反対方向に指定する必要があります。たとえば、サンプル DN は、groupDN="o=acme.com, ou=Groups" として指定されます。

LDAP レルム V2 では、DN は、 user.dn プロパティと group.dn プロパティを CustomRealm MBean の Configuration 属性に追加して行います。LDAP レルム V1 とは異なり、DN を反対方向に指定する必要はありません。たとえば、 LDAP レルム V2 のuser.dn プロパティと group.dn プロパティは次のようになります。

ConfigurationData="..., group.dn=ou=Groups, o=acme.com, ..."

LDAP レルム V1 と LDAP レルム V2 を切り替えるときにカスタマがよく犯すエラーは、反対方向の DN をコピーしてしまい、LDAP セキュリティ レルムが動作を停止してしまうことです。LDAP レルム V1 から LDAP レルム V2 に移行するときには、 DN の仕様をチェックしてください。

LDAP レルム V1 のコンフィグレーション

ファイル レルムの代わりに LDAP セキュリティ レルム V1 を使用するには、次の操作を行います。

  1. Administration Console の左ペインで [セキュリティ|レルム] ノードを選択します。

  2. Administration Console の右ペインで、[新しい LDAP Realm V1 (Deprecated) のコンフィグレーション] リンクをクリックします。

    LDAP セキュリティ レルムを実装するクラスの名前が表示されます。

  3. [作成] をクリックします。

  4. LDAP サーバと WebLogic Server との通信を有効化するには、[新しい LDAP Realm の作成] ウィンドウの [LDAP レルム V1(非推奨)] タブの属性に値を定義します。

    次の表では、[LDAP レルム V1(非推奨)] タブで設定する属性について説明します。

    表14-8 [LDAP レルム V1(非推奨)] タブの LDAP セキュリティ レルムの属性

    属性

    説明

    [LDAP URL]

    LDAP サーバの場所。URL を、LDAP サーバが実行されているコンピュータの名前とリスンしているポートの番号に変更する。次に例を示す。 ldap://ldapserver:385

    SSL プロトコルを使用して WebLogic Server を LDAP サーバと接続する場合は、URL に LDAP サーバの SSL ポートを指定する。

    [プリンシパル]

    WebLogic Server が LDAP サーバとの接続に使用する LDAP ユーザの識別名(Distinguished Name: DN)。このユーザは LDAP ユーザおよびグループをリストできなければならない。

    [証明]

    [プリンシパル] 属性に定義された、LDAP ユーザの認証用パスワード。

    [SSL の有効化]

    LDAP サーバと WebLogic Server との通信を保護するために SSL プロトコルを使用できるようにするためのオプション。次のガイドラインに留意する。

    • LDAP サーバが SSL プロトコルを使用するようコンフィグレーションされていない場合は、この属性を無効化する。

    • [ユーザ] タブで [ユーザ認証] 属性を external に設定した場合は、この属性を有効にしなければならない。

    [認証プロトコル]

    LDAP サーバの認証に使用する認証のタイプ。この属性を次のいずれかの値に設定する。

    • 認証を行わない場合の [(none)]

    • パスワード認証を行う場合の [simple]

    • 証明書認証用の [CRAM-MD5]

    Netscape iPlanet は CRAM-MD5 をサポートしている。Microsoft Site Server、Netscape iPlanet、および OpenLDAP と Novell NDS は Simple をサポートしている。


     

  5. 変更を保存するには、[適用] ボタンをクリックします。

  6. LDAP ディレクトリにユーザを保存する方法を指定するには、[新しい LDAP Realm の作成] ウィンドウの [ユーザ] タブの属性に値を定義します。

    次の表では、[ユーザ] タブで設定する属性について説明します。

    表14-9 [ユーザ] タブの LDAP セキュリティ レルムの属性

    属性

    説明

    [ユーザ認証]

    ユーザを認証するための方法を決定する。この属性を次のいずれかの値に設定する。

    • [bind] に設定すると、LDAP セキュリティ レルムは LDAP サーバのパスワードなどのユーザ データを取得し、WebLogic Server でそのパスワードをチェックする。

    • [external] に設定すると、LDAP セキュリティ レルムでは、LDAP サーバを、WebLogic Server クライアントから提供されるユーザ名およびパスワードとバインドすることでユーザを認証する。External に設定した場合は、SSL プロトコルを使用しなければならない。

    • [local] に設定すると、LDAP セキュリティ レルムは LDAP ディレクトリで UserPassword プロパティを参照し、WebLogic Server のパスワードと照らし合わせることによってユーザを認証する。

    Netscape iPlanet を使用している場合、この属性はBind に設定します。

    [ユーザ パスワード属性]

    [ユーザ認証] 属性が Local に設定されている場合は、この属性を使用してどの LDAP プロパティが LDAP ユーザのパスワードを格納しているのかを確認する。

    [ユーザ DN]

    [ユーザ名属性] 属性と組み合わされた場合に、LDAP ユーザをユニークに識別する属性とその値のリスト。

    [ユーザ名属性]

    LDAP ユーザのログイン名。この属性の値には LDAP ユーザの共通名を使用できるが、一般には共通名などの短縮した文字列を使用する。


     

  7. 変更を保存するには、[適用] ボタンをクリックします。

  8. LDAP ディレクトリにグループを保存する方法を指定するには、[新しい LDAP Realm の作成] ウィンドウの [グループ] タブの属性に値を定義します。

    次の表では、[グループ] タブで設定する属性について説明します。

    表14-10 [グループ] タブの LDAP セキュリティ レルムの属性

    属性

    説明

    [グループ DN]

    [グループ名属性] 属性と組み合わされた場合に、LDAP ディレクトリ内のグループをユニークに識別する属性と値のリスト。たとえば、 o=acme.comou=Groups です。

    [グループ名属性]

    LDAP ディレクトリ内のグループの名前。通常は普通の名前。

    [グループはコンテキスト]

    LDAP ディレクトリにグループ メンバシップを記録する方法を指定する Boolean チェックボックス。

    • 各グループが 1 ユーザを含む場合はこのチェックボックスをチェックする。デフォルトでは、このボックスは選択されている。

    • 1 つのグループ エントリが各グループ メンバの属性を含む場合はこのチェックボックスのチェックをはずす。

    [グループ ユーザ名属性]

    グループ エントリ内でグループ メンバを格納する LDAP 属性の名前。


     

  9. 変更を保存するには、[適用] ボタンをクリックします。

  10. すべての属性の定義が終わったら、WebLogic Server を再起動します。

  11. キャッシング レルムをコンフィグレーションします。詳細については、 キャッシング レルムのコンフィグレーションを参照してください。

    キャッシング レルムをコンフィグレーションするときには、[一般] タブの [基本レルム] 属性のプルダウン メニューから LDAP レルム を選択します。[基本レルム] 属性では、キャッシング レルムと代替セキュリティ レルム(この場合は LDAP レルム V1)の関連付けを定義します。

  12. [セキュリティ] ノードに移動します。

  13. [ファイル レルム] タブを選択します。

  14. [キャッシング レルム] 属性で、LDAP セキュリティ レルムで使用するキャッシング レルムの名前を選択します。コンフィグレーションされているキャッシング レルムのリストはプルダウン メニューに表示されます。

  15. WebLogic Server を再起動します。

キャッシング レルムは、LDAP ディレクトリでのルックアップの回数を減らすためにユーザとグループを内部にキャッシュします。ユーザ キャッシュおよびグループ キャッシュ内の各オブジェクトには、キャッシング レルムをコンフィグレーションするときに設定する TTL 属性があります。LDAP ディレクトリ内で変更を加えた場合、キャッシュされているオブジェクトが有効期限切れになるか、フラッシュされるまで、それらの変更は LDAP セキュリティ レルムに反映されません。デフォルトの TTL は、ルックアップが失敗した場合に 60 秒、成功した場合に 10 秒です。ユーザ キャッシュとグループ キャッシュの TTL 属性を変更しないかぎり、LDAP ディレクトリ内の変更は 60 秒後に LDAP セキュリティ レルムに反映されます。

LDAP セキュリティ レルムで getUser() を呼び出すなどサーバ側コードで LDAP セキュリティ レルム内のルックアップを実行した場合、レルムから返されるオブジェクトは、コードで解放されるまで解放されません。したがって、WebLogic Server によって認証されたユーザは、LDAP ディレクトリから削除された場合でも、接続が持続しているかぎり有効なままです。

LDAP レルム V2 のコンフィグレーション

LDAP レルム V2 のコンフィグレーションには、セキュリティ レルムと LDAP サーバとの通信を可能にするための属性と、LDAP ディレクトリにおけるユーザおよびグループの格納場所を記述する属性を定義することが必要になります。LDAP ツリーおよびスキーマは、LDAP サーバごとに異なります。WebLogic Server には、サポート対象の LDAP サーバ用のテンプレートが用意されています。これらのテンプレートでは、サポート対象の各 LDAP サーバでユーザとグループを表現するのに用いられるデフォルトのコンフィグレーション情報が指定されています。詳細については、 サポート対象 LDAP サーバ用テンプレートを参照してください。

LDAP セキュリティ レルム V2 をコンフィグレーションするには、使用する LDAP サーバに対応するテンプレートを選び、それを修正して具体的なコンフィグレーションの情報を指定します。

LDAP セキュリティ レルム V2 を使用するには、次の操作を行います。

  1. Administration Console の左ペインで [セキュリティ|レルム] ノードを選択します。

  2. WebLogic Server と一緒に使用する LDAP サーバを選択します。以下のオプションがあります。

  3. [コンフィグレーション情報] ボックスで、以下の情報を修正します。

注意: Microsoft Site Server 用の LDAP レルム V2 を使用する際には、 membership.search=true も併せて指定し、Microsoft Site Server で無効なユーザが認証されないように user.filter 値に以下を追加する必要があります。

user.filter=(&(sAMAccountName=%u)(objectclassname=user)
(!userAccountControl:1.2.840.113556.1.4.803:=2))

  1. 変更を保存するには、[適用] ボタンをクリックします。
     

  2. [セキュリティ] ノードに移動します。

  3. [ファイル レルム] タブを選択します。

  4. キャッシング レルムをコンフィグレーションします。詳細については、「 キャッシング レルムのコンフィグレーション」を参照してください。

    キャッシング レルムをコンフィグレーションする際には、[一般] タブの [基本レルム] 属性のプルダウン メニューから、defaultLDAPRealmforLDAPserver (たとえば、defaultLDAPRealmforOpenLDAPDirectoryServices) を選択します。[基本レルム] 属性では、キャッシング レルムと代替セキュリティ レルム (ここでは LDAP レルム) との関連を定義します。

  5. WebLogic Server を再起動します。

サポート対象 LDAP サーバ用テンプレート

LDAP レルム V2 でサポートされている LDAP サーバのコンフィグレーションに使用されるテンプレートを、 コード リスト 14-1 から コード リスト 14-4 に示します。

警告: 以下のコード例の各行は、実際には 1 行で入力する必要があります。これらのコードは、このマニュアルのページ設定に合わせて書式付けされており、そのために複数に分けて記載されている行もあります。

コード リスト 14-1 Netscape Directory Server 用のデフォルト テンプレート

<CustomRealmName="defaultLDAPRealmForNetscapeDirectoryServer"
RealmClassName="weblogic.security.ldaprealmv2.LDAPRealm"
ConfigurationData=
"server.host=ldapserver.example.com;
server.port=700;
useSSL=true;
server.principal=uid=admin,
ou=Administrators,ou=TopologyManagement,o=NetscapeRoot;
server.credential=*secret*;
user.dn=ou=people,o=beasys.com;
user.filter=(&amp;(uid=%u)(objectclass=person));
group.dn=ou=groups,o=beasys.com;
group.filter=(&amp;(cn=%g)(objectclass=groupofuniquenames));
membership.filter=(&amp;(uniquemember=%M)
(objectclass=groupofuniquenames));

"Notes="Before enabling the LDAP V2 security realm, edit the configuration parameters for your environment."/>

コード リスト 14-2 Microsoft Site Server 用のデフォルト テンプレート

<CustomRealmName="defaultLDAPRealmForMicrosoftSiteServer"
RealmClassName="weblogic.security.ldaprealmv2.LDAPRealm"
ConfigurationData=
"server.host=ldapserver.example.com;
server.port=700;
useSSL=true;
server.principal=cn=Administrator,ou=Members,
o=ExampleMembershipDir;
server.credential=*secret*
user.dn=ou=Members, o=ExampleMembershipDir;
user.filter=(&amp;(cn=%u)(objectclass=member)
(!userAccountControl:1.2.840.113556.1.4.803:=2)));
group.dn=ou=Groups, o=ExampleMembershipDir;
group.filter=(&amp;(cn=%g)(objectclass=mgroup));
membership.scope.depth=1;microsoft.membership.scope=sub;
membership.filter=(|(&amp;(memberobject=%M)
(objectclass=memberof))(&amp;(groupobject=%M)
(objectclass=groupmemberof)));
membership.search=true;

"Notes="Before enabling the LDAP V2 security realm, edit the configuration parameters for your environment."/>

コード リスト 14-3 Novell Directory Services 用のデフォルト テンプレート

<CustomRealmName="defaultLDAPRealmForNovellDirectoryServices"
RealmClassName="weblogic.security.ldaprealmv2.LDAPRealm"
ConfigurationData=
"server.host=ldapserver.example.com;
server.port=700;
useSSL=true;
server.principal=cn=Admin, DC=BEASYS
server.credential= *secret*;
user.dn=ou=people,o=example.com;
user.filter=(&amp;(cn=%u)(objectclass=person));
group.dn=ou=groups,o=example.com;
group.filter=(&amp;(cn=%g)(objectclass=groupofuniquenames));
membership.filter=(&amp;(member=%M)
(objectclass=groupofuniquenames));"

"Notes="Before enabling the LDAP V2 security realm, edit the configuration parameters for your environment."/>

コード リスト 14-4 Open LDAP Directory Services 用のデフォルト テンプレート

<CustomRealmName="defaultLDAPRealmForOpenLDAPDirectoryServices"
RealmClassName="weblogic.security.ldaprealmv2.LDAPRealm"
ConfigurationData=
"server.host=ldapserver.example.com;
server.port=700;
useSSL=true;
server.principal=cn=Manager, dc=example, dc=com;
server.credential= *secret*;
user.dn=ou=people, dc=example,dc=com;
user.filter=(&amp;(uid=%u)(objectclass=person));
group.dn=ou=groups,dc=example,c=com;
group.filter=(&amp;(cn=%g)(objectclass=groupofuniquenames));
membership.filter=(&amp;(uniquemember=%M) (objectclass=groupofuniquenames));"

"Notes="Before enabling the LDAP V2 security realm, edit the configuration parameters for your environment."/>

WebLogic Server での Microsoft Active Directory の使用

WebLogic Server のデフォルト設定では、Microsoft Active Directory LDAP サーバはサポートされません。Microsoft Active Directory を WebLogic Server で使用するには、以下の手順を実行します。

  1. Administration Console の左ペインで、[セキュリティ|レルム] ノードに移動します。

  2. defaultLDAPRealmforMicrosoftSiteServer を選択します。

    選択した LDAP サーバのコンフィグレーション ウィンドウが表示されます。

  3. [コンフィグレーション情報] ボックスで、使用する Microsoft Active Directory LDAP サーバに合わせて、以下の情報を指定します。

  4. 変更を保存するには、[適用] ボタンをクリックします。

  5. [セキュリティ] ノードに移動します。

  6. [ファイル レルム] タブを選択します。

  7. キャッシング レルムをコンフィグレーションします。詳細については、 キャッシング レルムのコンフィグレーションを参照してください。

    キャッシング レルムをコンフィグレーションするときには、[一般] タブの [基本レルム] 属性のプルダウン メニューから defaultLDAPRealmforLDAPserver (たとえば、defaultLDAPRealmforOpenLDAPDirectoryServices) を選択します。[基本レルム] 属性では、キャッシング レルムと代替セキュリティ レルム(この場合は LDAP レルム)の関連付けを定義します。

  8. WebLogic Server を再起動します。

Windows NT セキュリティ レルムのコンフィグレーション

Windows NT セキュリティ レルムでは、Windows NT ドメイン向けに定義されたアカウント情報を使用して、ユーザとグループを認証します。Windows NT セキュリティ レルム内のユーザおよびグループは Administration Console で表示できますが、ユーザおよびグループを管理する場合は Windows NT の機能を使用しなければなりません。

Windows NT セキュリティ レルムでは、(ユーザとグループの)認証は行えますが、(ACL の)認可を行うことはできません。WebLogic Server が使用する filerealm.properties ファイルの ACL 情報を更新するには、ACL を変更した後に [セキュリティ] ノードの [一般] タブで [更新] ボタンをクリックします。ACL でグループを使用すれば、WebLogic Server の情報を更新する回数を減らすことができます。Windows NT グループのメンバを変更すると、WebLogic Server リソースへの個々のユーザのアクセスを動的に管理できます。

Windows NT セキュリティ レルムを使用して、Windows 2000 Active Directory プライマリ ドメイン コントローラに照らし合わせて認証することは可能です。ただし、ドメイン コントローラ自体ではなく、ドメインのメンバーとなっているマシンから認証を行う必要があります。Windows NT セキュリティ レルムを実行するマシンが別のドメインのメンバーの場合、ローカルのユーザおよびグループ ストアを認証する方法はありません。

Windows NT セキュリティ レルムは、プライマリ ドメイン コントローラ、Windows NT ドメインのメンバーとなっているマシン、またはその Windows NT ドメインのメンバーとなっており、相互に信頼されたドメインを使用するマシンで実行可能です。

Windows NT セキュリティ レルムを使用するには、次の操作を行います。

  1. Administration Console の左ペインで [セキュリティ|レルム] ノードを選択します。

  2. Administration Console の右ペインで、[新しい NTRealm のコンフィグレーション] リンクをクリックします。

  3. Windows NT セキュリティ レルムのコンフィグレーションでは、レルムの名前と、Windows NT ドメインが実行されているコンピュータの名前を設定します。レルム名とコンピュータを指定するには、Administration Console の [新しい NT Realm の作成] ウィンドウの属性に値を定義します。

    次の表では、[新しい NT Realm の作成] ウィンドウの [コンフィグレーション] タブで設定する属性について説明します。

    表14-11 Windows NT セキュリティ レルムの属性

    属性

    説明

    [名前]

    AccountingRealm などの Windows NT セキュリティ レルムの名前。

    [プライマリ ドメイン]

    Windows NT ドメイン向けのユーザとグループが定義されたコンピュータのホストおよびポート番号。複数のホストとポート番号を入力する場合は、カンマ区切りのリストを使用する。


     

  4. 変更を保存するには、[適用] ボタンをクリックします。

  5. 属性の定義が終わったら、WebLogic Server を再起動します。

  6. キャッシング レルムをコンフィグレーションします。詳細については、 キャッシング レルムのコンフィグレーションを参照してください。

    キャッシング レルムをコンフィグレーションするときには、[一般] タブの [基本レルム] 属性のプルダウン メニューから Windows NT セキュリティ レルムを選択します。[基本レルム] 属性では、キャッシング レルムと代替セキュリティ レルム(この場合は Windows NT セキュリティ レルム)の関連付けを定義します。

  7. [セキュリティ] ノードに移動します。

  8. [ファイル レルム] タブを選択します。

  9. [キャッシング レルム] 属性で、Windows NT セキュリティ レルムで使用するキャッシング レルムの名前を選択します。コンフィグレーションされているキャッシング レルムのリストはプルダウン メニューに表示されます。

  10. WebLogic Server を再起動します。

次のコマンドを使用して、指定された Windows NT ユーザとして WebLogic Server を実行するための正しい特権を持っていることを確認します。

java weblogic.security.ntrealm.NTRealm username password

usernamepassword は、WebLogic Server を実行する Windows NT アカウントのユーザ名とパスワードです。

このコマンドの出力によって、指定されたユーザ名とパスワードが適切に認証されたかどうかわかります。

コマンドの出力

意味

auth?poppy

入力されたユーザ名とパスワードは正しく認証された。

auth?null

入力されたユーザ名とパスワードは正しく認証されなかった。


 

テストの結果、WebLogic Server を実行するクライアントまたはユーザが Windows NT セキュリティ レルムを実行する特権を持っていないことがわかった場合、WebLogic Server を実行する Windows ユーザのパーミッション(権利と呼ばれる)を更新する必要があります。

Windows NT で権利を更新するには、次の手順に従います。

  1. [プログラム|管理ツール] を選択します。

  2. [ユーザー マネージャ] を選択します。

  3. [原則] メニューから [ユーザーの権利] オプションを選択します。

  4. [高度なユーザー権利の表示] オプションをチェックします。

  5. WebLogic Server を実行する Windows ユーザに次の権利を付与します。

  6. WebLogic Server を実行する Windows ユーザが Administrators グループのメンバーであることを確認します。

  7. Windows NT を再起動して、すべての変更を有効にします。

  8. [Logon as System Account] オプションがチェックされていることを確認します。[Allow System to Interact with Desktop] オプションをチェックする必要はありません。Windows NT セキュリティ レルムを特定の Windows NT ユーザ アカウントで実行することはできません。

Windows 2000 で権利を更新するには、次の手順に従います。

  1. [プログラム|管理ツール] を選択します。

  2. [ローカル セキュリティ ポリシー] を選択します。

  3. [ローカル ポリシー|ユーザー権利の割り当て] を選択します。

  4. WebLogic Server を実行する Windows ユーザに次の権利を付与します。

  5. WebLogic Server を実行する Windows ユーザが Administrators グループのメンバーであることを確認します。

  6. Windows 2000 を再起動して、すべての変更を有効にします。

  7. [Logon as System Account] オプションがチェックされていることを確認します。[Allow System to Interact with Desktop] オプションをチェックする必要はありません。Windows NT セキュリティ レルムを特定の Windows NT ユーザ アカウントで実行することはできません。

Windows NT セキュリティ レルムを使用する場合に発生する Windows NT の一般的なエラーを以下に示します。

エラー コード

意味

1326

セキュリティ レルムを実行するホスト マシンは、プライマリ ドメイン コントローラとの信頼が確立されていない。ホスト マシンがドメインのメンバーになっていないか、ドメインがホスト マシンを信頼していない可能性がある。

53

プライマリ ドメイン コントローラのパスが見つからなかったことを示すをネットワーク エラーが発生した。このエラーは、ドメイン名が間違っている場合、またはプライマリ ドメイン コントローラのホスト名ではなく、ドメイン名が指定されている場合に発生する。


 

Windows NT のエラー コードについては、winerror.h ファイルで詳しく説明されています。

UNIX セキュリティ レルムのコンフィグレーション

注意: UNIX セキュリティ レルムは、Solaris および Linux プラットフォーム上でのみ動作します。

UNIX セキュリティ レルムは小さなネイティブ プログラム(wlauth)を実行して、ユーザとグループを検索し、UNIX ログイン名とパスワードに基づいてユーザを認証します。wlauth プログラムは PAM(Pluggable Authentication Modules)を使用します。これにより、オペレーティング システムの認証サービスを、このサービスを使用するアプリケーションを変更することなくコンフィグレーションできます。

UNIX では、ユーザは以下のようにして、グループのメンバーとして定義されます。

ACL を変更した後は、[セキュリティ] の [一般] タブで [更新] ボタンをクリックして、WebLogic Server が使用する filerealm.properties ファイルの情報を更新します。ACL でグループを使用すれば、WebLogic Server の情報を更新する回数を減らすことができます。UNIX グループのメンバを変更すると、WebLogic Server リソースへの個々のユーザのアクセスを動的に管理できます。

wlauth プログラムは、setuid root を実行します。wlauth プログラムの所有権とファイル属性を変更し、wlauth に合わせて PAM コンフィグレーション ファイルを設定するには、ルート パーミッションが必要です。

UNIX セキュリティ レルムの wlauth プログラムを設定するには、次の操作を行います。

  1. WebLogic Server がネットワーク ドライブにインストールされている場合は、wlauth ファイルを、WebLogic Server を実行するコンピュータのファイル システムの /usr/sbin ディレクトリなどにコピーします。wlauth ファイルは weblogic/lib/arch ディレクトリにあり、arch は使用しているプラットフォームの名前です。

  2. ルート ユーザとして次のコマンドを実行して、wlauth のオーナとパーミッションを変更します。

    # chown root wlauth
    # chmod +xs wlauth

  3. wlauth の PAM コンフィグレーションを設定します。

    Solaris の場合は、/etc/pam.conf ファイルに次の行を追加します。

    # Solaris マシンの WebLogic 認証の設定
    #
    wlauth auth required /usr/lib/security/pam_unix.so.1
    wlauth password required /usr/lib/security/pam_unix.so.1
    wlauth account required /usr/lib/security/pam_unix.so.1

    Linux の場合は、次の行を含むファイルを /etc/pam.d/wlauth という名前で作成します。

    #%PAM-1.0
    #
    # ファイル名 :
    # /etc/pam.d/wlauth
    #
    # シャドウ パスワードを使用しない場合は「shadow」を削除する
    auth required /lib/security/pam_pwdb.so shadow
    account required /lib/security/pam_pwdb.so

    注意: シャドウ パスワードを使用しない場合は、shadow を省略します。

UNIX セキュリティ レルムを使用するには、次の操作を行います。

  1. Administration Console の左ペインで [セキュリティ|レルム] ノードを選択します。

  2. Administration Console の右ペインで、[新しい UNIX Realm のコンフィグレーション] リンクをクリックします。

  3. UNIX セキュリティ レルムのコンフィグレーションでは、レルムの名前と、UNIX セキュリティ レルムの認証サービスを提供するプログラムの名前を定義する属性を設定します。これらの名前を定義するには、Administration Console の [新しい UnixRealm の作成] ウィンドウの属性に値を指定します。

    次の表では、[新しい UnixRealm の作成] ウィンドウで設定する属性について説明します。

    表14-12 UNIX セキュリティ レルムの属性

    属性

    説明

    [名前]

    AccountingRealm などの UNIX セキュリティ レルムの名前。

    [認証プログラム]

    UNIX セキュリティ レルムでユーザの認証に使用するプログラムの名前。ほとんどの場合、プログラムの名前は wlauth

    [レルム クラス名]

    UNIX セキュリティ レルムを実装する Java クラスの名前。Java クラスは WebLogic Server のクラス パスに入っていなければならない。


     

  4. 変更を保存するには、[適用] ボタンをクリックします。

  5. 属性の定義が終わったら、WebLogic Server を再起動します。

  6. キャッシング レルムをコンフィグレーションします。詳細については、 キャッシング レルムのコンフィグレーションを参照してください。

    キャッシング レルムをコンフィグレーションするときには、[一般] タブの [基本レルム] 属性のプルダウン メニューから UNIX セキュリティ レルムを選択します。[基本レルム] 属性では、キャッシング レルムと代替セキュリティ レルム(この場合は UNIX セキュリティ レルム)の関連付けを定義します。

  7. [セキュリティ] ノードに移動します。

  8. [ファイル レルム] タブを選択します。

  9. [キャッシング レルム] 属性で、UNIX セキュリティ レルムで使用するキャッシング レルムの名前を選択します。コンフィグレーションされているキャッシング レルムのリストはプルダウン メニューに表示されます。

  10. WebLogic Server を再起動します。

wlauth が WebLogic Server のクラスパスに入っていない場合、または wlauth 以外のプログラム名を指定した場合は、WebLogic Server を起動したときに Java コマンドライン プロパティを追加しなければなりません。使用するスクリプトを編集し、WebLogic Server を起動して、java コマンドの後に次のオプションを追加します。

-Dweblogic.security.unixrealm.authProgram=wlauth_prog

wlauth_progwlauth プログラムの名前と置き換えます。プログラムが検索パスにない場合は、絶対パスも指定します。WebLogic Server を起動します。wlauth プログラムが WebLogic Server パスにあり、wlauth という名前の場合は、この手順は不要です。

RDBMS セキュリティ レルムのコンフィグレーション

RDBMS セキュリティ レルムは BEA 独自のカスタム セキュリティ レルムで、ユーザ、グループ、および ACL をリレーショナル データベースに保存します。RDBMS セキュリティ レルムはサンプルであり、プロダクション環境で使用するためのものではありません。Administration Console を使用して、RDBMS セキュリティ レルムの次の管理機能を実行できます。

管理機能

Administration Console のサポート

ユーザの作成

あり。しかしメモリ中のみ。

ユーザの削除

あり

パスワードの変更

なし

グループの作成

なし

グループの削除

あり

グループ メンバーの追加

あり

グループ メンバーの削除

あり

ACL の削除

なし

ACL の削除

なし

パーミッションの追加

なし

パーミッションの削除

なし


 

データベースに入力する SQL スクリプトを使用すると、RDBMS セキュリティ レルムのグループを作成できます。

RDBMS セキュリティ レルムを基にして、プロダクション セキュリティ レルムを作成できます。RDBMS セキュリティ レルムを拡張するには、weblogic.security.acl パッケージの次のインタフェースを使用して RDBMS セキュリティ レルムに管理機能を追加します。

これらのインタフェースを使用して RDBMS セキュリティ レルムを拡張した場合、データベース スキーマの更新も必要になることがあります。

注意: サンプルの RDBMS は、自動コミットが有効になっているデータベースでは機能しません。サンプルの RDBMS をベースにして RDBMS を実装する場合、コードでは明示的にコミット文を使用し、データベースでは自動コミット機能を無効にしてください。

RDBMS セキュリティ レルムを使用するには、次の操作を行います。

  1. Administration Console の左ペインで [セキュリティ|レルム] ノードを選択します。

  2. Administration Console の右ペインで、[新しい RDBMSRealm のコンフィグレーション] リンクをクリックします。

  3. RDBMS セキュリティ レルムを実装するクラスの情報を定義します。

    次の表では、[一般] タブで設定する属性について説明します。

    表14-13 [一般] タブの RDBMS セキュリティ レルムの属性

    属性

    説明

    [名前]

    AccountingRealm などの RDBMS セキュリティ レルムの名前。

    [レルム クラス]

    RDBMS セキュリティ レルムを実装する WebLogic クラスの名前。Java クラスは WebLogic Server の CLASSPATH に入っていなければならない。


     

  4. 変更を保存するには、[適用] ボタンをクリックします。

  5. データベースへの接続に使用する JDBC ドライバの属性を定義します。

    次の表では、[データベース] タブで設定する属性について説明します。

    表14-14 [データベース] タブの RDBMS セキュリティ レルムの属性

    属性

    説明

    [ドライバ]

    JDBC ドライバの完全クラス名。このクラス名は、WebLogic Server の CLASSPATH に入っていなければならない。

    [URL]

    RDBMS レルムで使用するデータベースの URL。JDBC ドライバのマニュアルに従って指定する。

    [ユーザ名]

    データベースのデフォルト ユーザ名。

    [パスワード]

    データベースのデフォルト ユーザのパスワード。


     

  6. 変更を保存するには、[適用] ボタンをクリックします。

  7. [スキーマ] タブの [スキーマ プロパティ] ボックスで、ユーザ、グループ、および ACL をデータベースに格納するためのスキーマを定義します。

    コード リスト 14-5 は、WebLogic Server に付属の RDBMS コード サンプル(\samples\examples\security\rdbmsrealm ディレクトリ)の Schema プロパティで入力されたデータベース文を示しています。

    コード リスト 14-5 RDBMS セキュリティ レルムのサンプル スキーマ

    "getGroupNewStatement=true;getUser=SELECT U_NAME, U_PASSWORD FROM users WHERE U_NAME = ?;
    getGroupMembers=SELECT GM_GROUP, GM_MEMBER from groupmembers WHERE GM_GROUP = ?;
    getAclEntries=SELECT A_NAME, A_PRINCIPAL, A_PERMISSION FROM aclentries WHERE A_NAME = ? ORDER BY A_PRINCIPAL;
    getUsers=SELECT U_NAME, U_PASSWORD FROM users;
    getGroups=SELECT GM_GROUP, GM_MEMBER FROM groupmembers;
    getAcls=SELECT A_NAME, A_PRINCIPAL, A_PERMISSION FROM aclentries ORDER BY A_NAME, A_PRINCIPAL;
    getPermissions=SELECT DISTINCT A_PERMISSION FROM aclentries;
    getPermission=SELECT DISTINCT A_PERMISSION FROM aclentries WHERE A_PERMISSION = ?;
    newUser=INSERT INTO users VALUES ( ? , ? );
    addGroupMember=INSERT INTO groupmembers VALUES ( ? , ? );
    removeGroupMember=DELETE FROM groupmembers WHERE GM_GROUP = ? AND GM_MEMBER = ?;
    deleteUser1=DELETE FROM users WHERE U_NAME = ?;
    deleteUser2=DELETE FROM groupmembers WHERE GM_MEMBER = ?;
    deleteUser3=DELETE FROM aclentries WHERE A_PRINCIPAL = ?;
    deleteGroup1=DELETE FROM groupmembers WHERE GM_GROUP = ?;
    deleteGroup2=DELETE FROM aclentries WHERE A_PRINCIPAL = ?"

  8. 変更を保存するには、[適用] ボタンをクリックします。

  9. 属性の定義が終わったら、WebLogic Server を再起動します。

  10. キャッシング レルムをコンフィグレーションします。詳細については、 キャッシング レルムのコンフィグレーションを参照してください。

    キャッシング レルムをコンフィグレーションするときには、[一般] タブの [基本レルム] 属性のプルダウン メニューから RDBMS セキュリティ レルムを選択します。[基本レルム] 属性では、キャッシング レルムと代替セキュリティ レルム(この場合は RDBMS セキュリティ レルム)の関連付けを定義します。

  11. [セキュリティ] ノードに移動します。

  12. [ファイル レルム] タブを選択します。

  13. [キャッシング レルム] 属性で、RDBMS セキュリティ レルムで使用するキャッシング レルムの名前を選択します。コンフィグレーションされているキャッシング レルムのリストはプルダウン メニューに表示されます。

  14. WebLogic Server を再起動します。

カスタム セキュリティ レルムのインストール

ネットワーク上のディレクトリ サーバなどの既存のユーザ ストアからデータを抽出するカスタム セキュリティ レルムを作成できます。カスタム セキュリティ レルムを使用するには、weblogic.security.acl.AbstractListableRealm インタフェースまたは weblogic.security.acl.AbstractManageableRealm インタフェースの実装を作成し、Administration Console を使用してその実装をインストールします。

カスタム セキュリティ レルムをインストールするには、次の操作を行います。

  1. Administration Console の左ペインで [セキュリティ|レルム] ノードを選択します。

  2. Administration Console の右ペインで、[新しい Custom Realm のコンフィグレーション] リンクをクリックします。

  3. [コンフィグレーション] ウィンドウで、カスタム セキュリティ レルムの名前を定義し、そのレルムを実装するインタフェースを指定して、ユーザ、グループ、および ACL(オプション)をカスタム セキュリティ レルムに格納する方法を定義します。

    次の表では、[新しい CustomRealm の作成] ウィンドウの [コンフィグレーション] タブで設定する属性について説明します。

    表14-15 カスタム セキュリティ レルムの属性

    属性

    説明

    [名前]

    AccountingRealm などのカスタム セキュリティ レルムの名前。

    [レルム クラス名]

    カスタム セキュリティ レルムを実装する WebLogic クラスの名前。Java クラスは WebLogic Server の CLASSPATH に入っていなければならない。

    [コンフィグレーション情報]

    セキュリティ ストアに接続するために必要な情報。

    [パスワード]

    カスタム セキュリティ レルムのパスワード。 パスワードを指定すると、そのパスワードは WebLogic Server によって暗号化される。


     

  4. 変更を保存するには、[作成] ボタンをクリックします。

  5. 属性の定義が終わったら、WebLogic Server を再起動します。

  6. キャッシング レルムをコンフィグレーションします。詳細については、 キャッシング レルムのコンフィグレーションを参照してください。

    キャッシング レルムをコンフィグレーションするときには、[一般] タブの [基本レルム] 属性のプルダウン メニューからカスタム セキュリティ レルムを選択します。[基本レルム] 属性では、キャッシング レルムとカスタム セキュリティ レルムの関連付けを定義します。

  7. [セキュリティ] ノードに移動します。

  8. [ファイル レルム] タブを選択します。

  9. [キャッシング レルム] 属性で、カスタム セキュリティ レルムで使用するキャッシング レルムの名前を選択します。コンフィグレーションされているキャッシング レルムのリストはプルダウン メニューに表示されます。

  10. WebLogic Server を再起動します。

カスタム セキュリティ レルムの記述の詳細については、「カスタム セキュリティ レルムの記述」を参照してください。

セキュリティ レルムの移行

WebLogic Server は、セキュリティ レルム用の管理アーキテクチャを備えています。MBean で実装される管理アーキテクチャにより、Administration Console を使用してセキュリティ レルムを管理できます。以前のリリースの WebLogic Server でのセキュリティ レルムがある場合、以下の情報を使用して新しいアーキテクチャに移行します。

 


ユーザの定義

注意: この節では、ファイル レルムにユーザを追加する方法について説明します。代替セキュリティ レルムを使用している場合、ユーザを定義するには、そのレルムで用意されている管理ツールを使用する必要があります。

ユーザ名およびグループ名はユニークでなければなりません。ユーザ名とグループ名では、マルチバイト文字およびカンマ (,) を除くすべての特殊文字を使用できます。

ユーザとは、WebLogic Server セキュリティ レルムで認証されるエンティティのことです。ユーザは、個人または Java クライアントなどのソフトウェア エンティティでもかまいません。各ユーザには、WebLogic Server セキュリティ レルムでユニークな ID が与えられます。システム管理者は、同じセキュリティ レルム内で同一ユーザが重複しないようにする必要があります。

セキュリティ レルムのユーザの定義では、WebLogic Server セキュリティ レルム内のリソースにアクセスするユーザごとにユニークな名前とパスワードを、Administration Console の [ユーザ] ウィンドウで指定します。

WebLogic Server には、systemguest という 2 つの特別なユーザが定義されています。

system ユーザと guest ユーザは、WebLogic Server セキュリティ レルムのその他のユーザとほぼ同じです。

ユーザを定義するには、次の操作を行います。

  1. Administration Console の左ペインで [セキュリティ|ユーザ] ノードを選択します。

    [ユーザ] ウィンドウが表示されます。

  2. [ユーザ] ウィンドウで [名前] 属性にユーザの名前を入力します。

  3. [パスワード] 属性でユーザのパスワードを入力します。

  4. [パスワードの確認] 属性にパスワードを再び入力します。

  5. [作成] をクリックします。

ユーザを削除するには、次の操作を行います。

  1. [ユーザ] ウィンドウの [ユーザの削除] ボックスでユーザの名前を入力します。

  2. [削除] をクリックします。

ユーザのパスワードを変更するには、次の操作を行います。

  1. [ユーザ] ウィンドウの [名前] 属性でユーザの名前を入力します。

  2. [古いパスワード] 属性に古いパスワードを入力します。

  3. [新しいパスワード] 属性に新しいパスワードを入力します。

  4. 新しいパスワードを再度入力して、パスワードの変更を確定します。

WebLogic Server の使用時には、ユーザがロックされている場合があります。次の手順を実行すると、ユーザのロックを解除できます。

  1. Administration Console で [ユーザ] ウィンドウを開きます。

  2. [ユーザのロックを解除] リンクをクリックします。

  3. [ユーザのロックを解除] フィールドで、ロックを解除するユーザの名前を入力します。

  4. ユーザのロックを解除するサーバを選択します。

  5. [ロック解除] をクリックします。

WebLogic Server のユーザとアクセス制御モデルの詳細については、「WebLogic Security の概要」と「セキュリティの基礎概念」を参照してください。

 


グループの定義

注意: この節では、ファイル レルムにグループを追加する方法について説明します。代替セキュリティ レルムを使用している場合、グループを定義するには、そのレルムで用意されている管理ツールを使用する必要があります。

ユーザ名およびグループ名はユニークでなければなりません。ユーザ名とグループ名では、マルチバイト文字およびカンマ (,) を除くすべての特殊文字を使用できます。

グループは、通常、企業の同じ部門に所属しているなどの共通点を持つユーザの集合を表します。グループは、多数のユーザを効率的に管理する手段です。ACL でグループにパーミッションが付与された場合、そのグループのすべてのメンバがそのパーミッションを持つことになります。パーミッションは、個々のユーザに対してではなく、グループに対して割り当てることをお勧めします。

デフォルトの WebLogic Server には以下のグループがあります。

次の手順を実行すると、グループを WebLogic Server セキュリティ レルムに登録できます。

  1. Administration Console の左ペインで [セキュリティ|グループ] ノードを選択します。

  2. [新しい Group の作成] リンクをクリックします。

    [グループ] ウィンドウが表示されます。

  3. [グループ] ウィンドウの [名前] 属性でグループの名前を入力します。グループ名は複数形にすることをお勧めします。たとえば、Administrator ではなく Administrators にします。

  4. [追加ユーザ] 属性をクリックし、グループに追加する WebLogic Server ユーザを選択します。

  5. [追加グループ] 属性をクリックし、グループに追加する WebLogic Server グループを選択します。

  6. [適用] ボタンをクリックして新しいグループを作成します。

グループを削除するには、[グループ] ウィンドウのリスト ボックスでグループの名前を入力し、[削除] をクリックします。

WebLogic Server のグループとアクセス制御モデルの詳細については、「WebLogic Security の概要」と「セキュリティの基礎概念」を参照してください。

 


ACL の定義

ユーザは、WebLogic Server セキュリティ レルムのリソースにアクセスします。ユーザがリソースにアクセスできるかどうかは、そのリソースのアクセス制御リスト(ACL)によって決まります。ACL には、ユーザがリソースとの対話に用いるパーミッションが定義されています。ACL を定義するには、リソースの ACL を作成し、そのリソースに対するパーミッションを指定してから、そのパーミッションを付与するユーザおよびグループを指定します。ACL は、グループに対して割り当てることをお勧めします。

各 WebLogic Server リソースには、1 つまたは複数のパーミッションを付与できます。次の表は、ACL を使用してパーミッションを制限するさまざまな WebLogic Server リソースの機能の一覧を示しています。

表14-16 WebLogic Server リソースの ACL

WebLogic Server リソース

ACL

付与するパーミッションの内容

WebLogic Server

weblogic.server

weblogic.server.servername

boot

コマンドライン管理ツール

weblogic.admin

注意: Administration Console を使用して ACL を追加するには、weblogic.admin.acl.modify を定義する必要がある。

shutdown、
lockServer
unlockServer、
modify

MBean

weblogic.admin.mbean.mbeaninstancename

weblogic.admin.mbean.mbeantypename

read、write、

access

WebLogic Event

weblogic.event.topicName

submit

receive

WebLogic JDBC 接続プール

weblogic.jdbc.connectionPool.poolname

reserve

reset

admin

WebLogic パスワード

weblogic.passwordpolicy

unlockuser

WebLogic JMS 送り先

weblogic.jms.topic.topicName

weblogic.jms.queue.queueName

send、receive

WebLogic JNDI コンテキスト

weblogic.jndi.path

lookup

modify

list


 

注意: JDBC 接続プール用の ACL を指定する際、 filerealm.properties ファイルには system および guest ユーザ用の JDBC 接続プールへのアクセスを特に定義する必要があります。たとえば、次のようになります。

acl.reserve.poolforsecurity=system, guest
acl.reset.ppolforsecurity=system, guest

WebLogic Server リソースの ACL を作成するには、Administration Console を起動して次の手順に従います。

  1. Administration Console の左ペインで [セキュリティ|ACL] ノードを選択します。

  2. Adminstration Console の右ペインで、[新しい ACL の作成] リンクをクリックします。

    [アクセス コントロール リスト] ウィンドウが表示されます。

  3. [新しい ACL 名] フィールドで、ACL を使用して保護する WebLogic Server リソースの名前を指定します。

    たとえば、demopool という名前で、JDBC 接続プール用の ACL を作成します。

  4. [作成] をクリックします。

  5. [新しい Permssion を追加] リンクをクリックします。

  6. リソースに対するパーミッションを指定します。

    リソースに対して設定可能なパーミッションごとに別々の ACL を作成することも、リソースに対するすべてのパーミッションを付与する 1 つの ACL を作成することもできます。たとえば、JDBC 接続プール、demopool に対して、reserve パーミッション用、 reset パーミッション用、shrink パーミッション用にそれぞれ 1 つの ACL を作成できます。または、reserve および reset パーミッション用に 1 つの ACL を作成することもできます。

  7. リソースに対して指定されたパーミッションを持つユーザまたはグループを指定します。

  8. [適用] をクリックします。

WebLogic Server でリソースの ACL を作成する場合は、 表 14-16 の構文に従ってリソースを参照しなければなりません。たとえば、demopool という JDBC 接続プールを、weblogic.jdbc.connectionPool.demopool と指定します。

既存の ACL を変更した場合は、[セキュリティ] ノードの [一般] タブで [更新] ボタンをクリックして、WebLogic Server が使用する filerealm.properties ファイルの情報を更新します。

WebLogic Server を起動できるようにするには、サーバを起動するためのパーミッションを特定のグループに付与する必要があります。このセキュリティ対策によって、許可のないユーザが WebLogic Server を起動できなくなります。

デフォルトでは、system ユーザだけが MBean を修正できます。MBean にアクセスして修正できるユーザの数は制限するようにしてください。すべての WebLogic Server MBean にアクセスするには、次のような ACL を使用します。

access.weblogic.admin.mbean=Group or User name

ユーザが MBean へアクセスしようとして失敗した場合、weblogic.management.NoAccessRuntimeException が返されます。サーバ ログには、アクセスしようとしたユーザと MBean を示す詳細が記録されます。

Administration Console を使用してユーザまたはグループにパーミッションを付与する前に、Administrators グループに次のパーミッションを付与する必要があります。

acl.modify.weblogic.admin=Administrators

 


SSL プロトコルのコンフィグレーション

以下の節では、デジタル証明書を取得する方法、および SSL プロトコルをコンフィグレーションする方法について説明します。

SSL プロトコルの詳細については、「WebLogic Security の概要」と「セキュリティの基礎概念」を参照してください。

プライベート キーとデジタル証明書の取得

プライベート キーとデジタル証明書は、SSL プロトコルを使用する WebLogic Server のデプロイメントごとに必要です。認証局(CA)からデジタル証明書を取得するには、証明書署名リクエスト(CSR)と呼ばれる特定のフォーマットでリクエストを提出する必要があります。WebLogic Server には、CSR を作成する Certificate Request Generator サーブレットが入っています。Certificate Request Generator サーブレットはユーザから情報を収集して、プライベート キー ファイルと証明書リクエスト ファイルを生成します。次に、VeriSign や Entrust.net などの認証局に CSR を提出します。Certificate Request Generator サーブレットを使用する前に、WebLogic Server をインストールして実行しておく必要があります。

注意: Certificate Request Generator サーブレット以外のソースからプライベート キーを入手した場合は、そのキーのフォーマットが PKCS#5/PKCS#8 PEM であることを確認します。

CSR を生成するには、次の手順に従います。

  1. Certificate Request Generator サーブレットを起動します。サーブレットの .war ファイルは、\wlserver6.1\config\applications ディレクトリにあります。.war ファイルは、WebLogic Server を起動すると自動的にインストールされます。

  2. Web ブラウザで、Certificate Request Generator サーブレットの URL を次のように入力します。

    https://hostname:port/certificate/

    URL の各要素は次のように定義します。

  3. Certificate Request Generator サーブレットによって、Web ブラウザからフォームがロードされます。次の表の情報を参照して、ブラウザに表示されたフォームに必要な情報を入力します。

    表14-17 Certificate Request Generator フォームのフィールド

    フィールド

    説明

    [Country code]

    国ごとの 2 文字の ISO コード。アメリカのコードは US。

    [Organizational unit name]

    組織の事業部、部、またはその他の運営単位の名前。

    [Organization name]

    組織の名前。認証局が、この組織に登録されているドメインに所属するホスト名をこの属性に入力するよう要求する場合がある。

    [Email address]

    管理者の E メール アドレス。このアドレスがデジタル証明書の送信先になる。

    [Full host name]

    デジタル証明書のインストール先となる WebLogic Server の完全修飾名。この名前は、WebLogic Server の DNS ルックアップ用の名前(たとえば node..com)である。Web ブラウザでは、URL のホスト名とデジタル証明書の名前を比較する。ホスト名を後で変更した場合は、新しいデジタル証明書を要求しなければならない。

    [Locality name (city)]

    市または町の名前。市で付与されたライセンスを使用して運用する場合は、この属性は必須、つまり、ライセンスを付与された市の名前を入力しなければならない。

    [State name]

    組織の所在地がアメリカまたはカナダの場合に、組織が業務を行っている州の名前。短縮してはならない。

    [Private Key Password]

    プライベート キーの暗号化に使用するパスワード。

    WebLogic Server で保護されたキーを使用する場合は、このフィールドにパスワードを入力する。保護されたキーの使用を選択すると、キーの使用時にパスワードの入力が要求される。パスワードを指定した場合は、PKCS-8 で暗号化されたプライベート キーを受け取る。パスワードを使用してプライベート キーを保護することが望ましい。

    保護されたキーを使用しない場合は、このフィールドに何も入力しない。

    保護されたプライベート キーを使用するには、Administration Console の [サーバ] ウィンドウの [SSL] タブの [暗号化キーを使用] 属性を有効にする。

    [Strength]

    生成するキーの長さ(ビット単位)。キーが長いほど、暗号の解読はより困難になる。

    国内バージョンの WebLogic Server では、512 ビット、768 ビット、または 1024 ビットのキーを選択できる。1024 ビットのキーが望ましい。

    注意: このフィールドは、米国内バージョンの Certificate Request Generator サーブレットでのみ表示されます。


     

  4. [Generate Request] ボタンをクリックします。

    必須属性が空白の場合、または属性に無効な値が指定されている場合は、Certificate Request Generator サーブレットによってメッセージが表示されます。メッセージが表示された場合は、ブラウザの [戻る] ボタンをクリックして、エラーを修正します。

    すべての属性が受け付けられると、Certificate Request Generator サーブレットは次のファイルを WebLogic Server のスタートアップ ディレクトリに作成します。

  5. 認証局を選択し、その認証局の Web サイトの指示に従って、デジタル証明書を購入します。

  6. サーバのタイプを選択するよう指示された場合は、WebLogic Server に対応したデジタル証明書を受け取れるように、BEA WebLogic Server を選択します。

  7. 認証局からデジタル証明書を受け取ったら、\wlserver6.1\config\ ディレクトリに保存する必要があります。

  8. SSL プロトコルを使用するよう WebLogic Server をコンフィグレーションするには、[サーバ] ウィンドウの [コンフィグレーション] タブにある [SSL] タブで次の情報を入力する必要があります。

  9. 保護されたプライベート キーを使用する場合は、次のコマンドライン オプションを使用して WebLogic Server を起動します。

    -Dweblogic.management.pkpassword=password

    password はプライベート キーのパスワード。

プライベート キーとデジタル証明書の保存

プライベート キーとデジタル証明書を取得したら、Certificate Request Generator サーブレットによって生成されたプライベート キーと認証局から入手したデジタル証明書を、\wlserver6.1\config\ ディレクトリにコピーします。

プライベート キーとデジタル証明書は、PEM または Definite Encoding Rules(DER)フォーマットで生成されます。デジタル証明書ファイルのフォーマットは、ファイル名拡張子で識別します。

PEM(.pem) フォーマットのプライベート キー ファイルは、先頭と末尾がそれぞれ次のような行になっています。

-----BEGIN ENCRYPTED PRIVATE KEY-----

-----END ENCRYPTED PRIVATE KEY-----

PEM(.pem) フォーマットのデジタル証明書は、先頭と末尾がそれぞれ次のような行になっています。

-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----

注意: 使用するデジタル証明書は、ファイル内で BEGIN CERTIFICATE および END CERTIFICATE 行によってそれぞれが区切られた複数のデジタル証明書のうちのいずれかでもかまいません。通常、WebLogic Server 用のデジタル証明書は 1 つのファイル(拡張子は .pem または .der)に入っており、WebLogic Server 認証チェーン ファイルは別のファイルに入っています。2 つのファイルを使用する理由は、異なる WebLogic Server が同じ認証チェーンを共有する場合があるからです。

認証局ファイル内の最初のデジタル証明書は、WebLogic Server 認証チェーンの最初のデジタル証明書となります。ファイル内の次の証明書は、認証チェーン内の次のデジタル証明書になります。ファイル内の最後の証明書は、認証チェーン内の最後となる自己署名デジタル証明書です。

DER(.der)フォーマットのファイルにはバイナリ データが格納されます。WebLogic Server では、ファイル拡張子が認証ファイルの内容と一致する必要があるので、認証局から取得したファイルは正しい拡張子を付けて保存します。

プライベート キー ファイルとデジタル証明書には WebLogic Server の system ユーザだけが読み込み特権を持ち、その他のユーザがアクセスできないように、プライベート キーとデジタル証明書を保護します。複数の認証局のデジタル証明書を持つファイルまたは認証チェーンを格納するファイルを作成する場合は、PEM フォーマットを使用しなければなりません。WebLogic Server には、DER フォーマットと PEM フォーマットを互いに変換するツールが用意されています。詳細については、「WebLogic Server Java ユーティリティの使い方」を参照してください。

信頼された認証局の定義

SSL 接続が確立されると、WebLogic Server は、信頼された認証局リストと照らし合わせて認証局の ID をチェックして、使用中の認証局が信頼されていることを確認します。

認証局のルート証明書を WebLogic Server の \wlserver6.1\config\ ディレクトリにコピーし、「 SSL プロトコル用の属性の定義」で説明されている属性を設定します。

認証チェーンを利用する場合は、別の PEM エンコード済みデジタル証明書を、WebLogic Server 用のデジタル証明書を発行した認証局のデジタル証明書に追加します。ファイル内の最後のデジタル証明書は、自己署名デジタル証明書(つまり、rootCA 証明書)でなければなりません。

相互認証を利用する場合は、受け付ける認証局のルート証明書を取得して、信頼された CA ファイルにそれを含めます。

SSL プロトコル用の属性の定義

セキュア ソケット レイヤ(Secure Sockets Layer: SSL)では、ネットワーク接続している 2 つのアプリケーションが互いの ID を認証できるようにするとともに、アプリケーション間でやりとりされるデータを暗号化することで、セキュアな接続を実現します。SSL プロトコルは、サーバ認証と、必要に応じてクライアント認証、機密性、およびデータ整合性を提供します。

SSL プロトコル用の属性を定義するには、次の手順に従います。

  1. Administration Console を起動します。

  2. [サーバ] ウィンドウの [コンフィグレーション] タブを表示します。

  3. [SSL] タブを選択します。値を入力したり、必須チェックボックスをチェックしたりして、このタブの属性を定義します(詳細については次の表を参照してください)。

  4. [適用] ボタンをクリックして、変更を保存します。

  5. WebLogic Server を再起動します。

注意: PKCS-8 で保護されたプライベート キーを使用している場合は、WebLogic Server を起動するときに、プライベート キーのパスワードをコマンド ラインで指定する必要があります。

次の表では、[サーバ] ウィンドウの [コンフィグレーション] タブにある [SSL] タブの各属性について説明します。

表14-18 SSL プロトコルの属性

属性

説明

[有効化]

SSL プロトコルを有効化する。この属性はデフォルトで有効。

[リスン ポート]

WebLogic Server が SSL 接続をリスンする専用ポートの番号。デフォルトは 7002。

[サーバ キー ファイル名]

WebLogic Server 用のプライベート キーのパスと名前。

パスは WebLogic Server のインストールされたルート ディレクトリを起点とする。次に例を示す。 \wlserver6.1\config\myapp\privatekey.pem

ファイル拡張子(.DER または .PEM)は、WebLogic Server がファイルの内容を読み込む方法を示す。

[サーバ認証ファイル名]

WebLogic Server の ID を確立するデジタル証明書ファイルの絶対パスと名前。

パスは WebLogic Server のインストールされたルート ディレクトリを起点とする。次に例を示す。 \wlserver6.1\config\myapp\cert.pem

ファイル拡張子(.DER または .PEM)は、WebLogic Server がファイルの内容を読み込む方法を示す。

[サーバ認証チェーン ファイル]

WebLogic Server のデジタル証明書に署名するために使用するデジタル証明書の絶対パス。

パスは WebLogic Server のインストールされたルート ディレクトリを起点とする。次に例を示す。 \wlserver6.1\config\myapp\cacert.pem

ファイル拡張子(.DER または .PEM)は、WebLogic Server がファイルの内容を読み込む方法を示す。

WebLogic Server で証明書チェーンを使用する場合、そのファイルには WebLogic Server のデジタル証明書に署名するために使用されるデジタル証明書が最初のメンバーとして格納され、2 番目のメンバーには最初のデジタル証明書に署名するために使用されるデジタル証明書が格納されていなければならない。ファイル内の最後のデジタル証明書は自己署名でなければならない。

[サーバ認証チェーン ファイル] 属性では、少なくとも 1 つのデジタル証明書が必要。ファイルに 1 つのデジタル証明書しかない場合、そのデジタル証明書は自己署名でなければならない(つまり、ルート CA デジタル証明書でなければならない)。

認証局からデジタル証明書を取得する場合、認証局およびその他の上位のデジタル証明書を認証局から受け取る。

[クライアント認証を強制する]

クライアントが信頼できる認証局からのデジタル証明書を WebLogic Server に提示しなければならないかどうかを定義する。

[信頼性のある CA ファイル名]

WebLogic Server によって信頼された認証局のデジタル証明書を格納するファイルの名前。この属性で指定したファイルには、認証局の 1 つまたは複数のデジタル証明書が格納される。ファイル拡張子(.DER または .PEM)によって、WebLogic Server がファイルの内容を読み込む方法が決まる。

[認可済み認証機関]

CertAuthenticator インタフェースを実装する Java クラスの名前。weblogic.security.acl.CertAuthenticator インタフェースの使い方の詳細については、「WebLogic ユーザへのデジタル証明書のマップ」を参照。

[暗号化キーを使用]

WebLogic Server のプライベート キーがパスワードで暗号化されることを指定する。デフォルトでは無効。

この属性を指定した場合は、保護されたキーを使用する必要がある。また、WebLogic Server を起動するときには、次のコマンドライン オプションを使用して WebLogic Server を起動する。

-Dweblogic.management.pkpassword=password

password はプライベート キーのパスワード。

[Java を使用]

この属性を選択すると、ネイティブ Java ライブラリを使用できるようになる。WebLogic Server は、SSL プロトコルの pure-Java 実装を提供する。ネイティブ Java ライブラリを使用すると、Solaris、Windows NT、および IBM AIX プラットフォーム上で SSL 処理のパフォーマンスが向上する。デフォルトでは、この属性は無効。

[ハンドラを有効化]

WebLogic Server が、次のいずれかの理由でクライアント認証に失敗した SSL 接続を拒否するかどうかを指定する。

  • 必要なクライアント デジタル証明書が用意されていなかった。

  • クライアントがデジタル証明書を提出しなかった。

  • クライアントからのデジタル証明書の発行元が、[信頼性のある CA ファイル名] 属性に指定された認証局ではない。

SSL ハンドラのデフォルト設定では、WebLogic Server インスタンスから別の WebLogic Server インスタンスへの SSL 接続は 1 つしか許可されない。たとえば、WebLogic Server の EJB は別の Web サーバで HTTPS ストリームを開く場合がある。[ハンドラを有効化] 属性が有効な場合、WebLogic Server は SSL 接続のクライアントとして動作する。デフォルトでは、この属性は有効。

この属性は、SSL 接続を開始するために独自の実装を提供する場合にのみ無効にする。

注意: SSL ハンドラは、WebLogic Server が SSL 接続の受け付けを管理する機能には影響しない。

[キーの有効期間をエクスポート]

WebLogic Server がドメスティック サーバとエクスポータブル クライアントとの間で、新規のキーを生成する前に、エクスポータブル キーを使用する回数。新規のキーの生成前にキーを使用する回数が少ないほど、WebLogic Server のセキュリティが高くなる。デフォルトの使用回数は 500 回。

[ログイン タイムアウト ミリ秒]

WebLogic Server が SSL 接続のタイムアウトまで待機するミリ秒数。SSL 接続は、通常の接続よりも時間がかかる。クライアントがインターネット経由で接続する場合は、ネットワーク レイテンシに対応するためにデフォルト値を大きくする。デフォルト値は 25,000 ミリ秒。

[認可キャッシュ サイズ]

WebLogic Server がトークン化して保存するデジタル証明書の数。デフォルトは 3。

[ホスト名検証を無視]

デフォルトのホスト名検証を無効にする。WebLogic Server のホスト名検証では、デジタル証明書の Subject DN と SSL 接続を開始したサーバのホスト名を比較する。ホスト名検証を実行しない場合(たとえば、WebLogic Server 付属のデモ用デジタル証明書を使用する場合)、この属性をチェックする。この属性を無効にすると、WebLogic Server は介在者の攻撃に対して無防備になる。

プロダクション環境でデモ用デジタル証明書を使用したり、ホスト名検証を無効にしたりすることは望ましくない。

[ホスト名の検証]

ホスト名検証インタフェースを実装する Java クラスの名前。weblogic.security.SSL.HostNameVerifier インタフェースの使い方については、「カスタム ホスト名検証の使い方」を参照。


 

注意: 以前のリリースの WebLogic Server では、自己署名されているが、[サーバ認証ファイル名] 属性(または weblogic.security.certificate.server プロパティ)で許可されてないデジタル証明書を定義することができました。ただし、これは優れたセキュリティ ポリシーではありませんでした。現在は、[サーバ認証ファイル名] 属性と [サーバ認証チェーン ファイル] 属性の両方を定義する必要があります。

PKCS#7 ファイルの使い方

WebLogic Server では、PKCS#7 ファイルを使用することができます。ただし、ファイルに記述されている証明書チェーンを p7b フォーマットの個々のファイルに分け、それらの p7b ファイルを PEM フォーマットに変換してから付加して、単一の PEM ファイルにする必要があります。PKCS#7 ファイルはそれぞれ、以下の部分から成ります。

サーバのデジタル証明書と信頼性のある CA 証明書は、別々の p7b ファイルに分ける必要があります。

この節で示す手順を実行する前に、ファイルをテキスト エディタで開いて以下の情報を探すことで、ファイルが PKCS#7 フォーマットであることを確かめてください。

"Base 64 encoded certificate with CA certificate chain in pkcs7 format"

PKCS#7 ファイルを WebLogic Server で使用するには、以下の手順に従います。

  1. PKCS#7 ファイルをテキスト エディタで開きます。

  2. PKCS#7 ファイルに記述されているサーバのデジタル証明書と信頼性のある CA 証明書を、別個の p7b ファイル (たとえば、servername.p7bCA.p7b) にコピーします。

  3. Windows 2000 上の Windows エクスプローラで、これらの p7b ファイルの一方をダブル クリックします。

    [証明書] ウィンドウが表示されます。

  4. [証明書] ウィンドウの左ペインで、変換する p7b ファイルを選択します。

  5. [証明書] オプションを選択します。

  6. [証明書のエクスポート ウィザード] が表示されます。

  7. [次へ] をクリックします。

  8. [Base 64 encoded X.509 (CER)] オプション (PEMフォーマットでのエクスポート) を選択します。

  9. [次へ] をクリックします。

  10. 変換後のデジタル証明書の名前を入力します。

  11. [完了] をクリックします。

    生成されるファイルは、PEM フォーマットになっています。

  12. もう一方の p7b ファイルに対して、ステップ 3 〜 11 を実行します。

  13. テキスト エディタを開き、両方の PEM ファイルを読み込んで単一の PEM ファイルにします。その際には、読み込む順序が重要です (信頼性の高い順にファイルを読み込む)。ファイルに最初に記述されるデジタル証明書は、サーバのデジタル証明書でなければなりません。信頼性のある CA 証明書は、その次に記述されることになります。

    なお、デジタル証明書の間に空白行を入れることはできません。

SSL セッション キャッシングのパラメータの変更

WebLogic Server 6.1 サービス パック 2 では、SSL コードに SSL セッション キャッシングのパラメータが含まれています。キャッシュされた SSL セッションを使用すると、接続では再度 SSL ハンドシェークを行う必要がなくなります。接続は、中断されたところからそのまま再開されます。キャッシュされた SSL セッションを使用することで、アプリケーションでは SSL セッションの確立に要する時間を大幅に短縮できるので、パフォーマンスが大幅に向上します。キャッシュされた SSL セッションを使用するには、クライアントとサーバが SSL セッションをキャッシュする機能を持っている必要があります。ブラウザはすべて、SSL セッションをキャッシュする機能を持っています。

サーバセッション キャッシュは、TTL キャッシュに保存されます。TTL キャッシュの詳細については、「 キャッシング レルムのコンフィグレーション」を参照してください。クライアントサイドの SSL セッション キャッシュでは、実行スレッドの SSL セッションを 1 つだけ保持します。

SSL セッション キャッシングはデフォルトで有効です。次のコマンド ライン フラグを使用すると、サーバセッション キャッシュのデフォルト サイズおよび存続期間を変更できます。

-Dweblogic.security.SSL.sessionCache.size=211
-Dweblogic.security.SSL.sessionCache.ttl=600

表14-19 パラメータ

パラメータ

最小

最大

デフォルト

sessionCache.size

1

65537

211

sessionCache.ttl

1

max Integer.MAX_VALUE

600

 


相互認証のコンフィグレーション

WebLogic Server が相互認証向けにコンフィグレーションされている場合、クライアントは、信頼された認証局のリストと照らし合わせてデジタル証明書を検証する WebLogic Server に、デジタル証明書を提示する必要があります。

SSL プロトコルと証明書向けに WebLogic Server をコンフィグレーションするには、「 SSL プロトコルのコンフィグレーション」の手順に従います。

WebLogic Server が使用する認証局のルート証明書を \wlserver6.1\config ディレクトリにコピーします。クライアントは、相互認証の際に、信頼された認証局のいずれかが発行したデジタル証明書を提示する必要があります。

相互認証をコンフィグレーションするには、Administration Console の [サーバ] ウィンドウの [コンフィグレーション] タブにある [SSL] タブで [クライアント認証を強制する] オプションをチェックします。デフォルトでは、このフィールドは無効です。

 


SSL を使用した RMI over IIOP のコンフィグレーション

SSL プロトコルを使用すると、RMI リモート オブジェクトへの IIOP 接続を保護できます。SSL プロトコルは、認証を通じて接続を保護し、オブジェクト間のデータ交換を暗号化します。SSL プロトコルを使用して RMI over IIOP 接続を保護するには、次の手順に従います。

  1. SSL プロトコルを使用するよう WebLogic Server をコンフィグレーションします。詳細については、 SSL プロトコル用の属性の定義を参照してください。

  2. SSL を使用するよう Object Request Broker(ORB)をコンフィグレーションします。SSL プロトコルのコンフィグレーションの詳細については、クライアント ORB の製品マニュアルを参照してください。

  3. host2ior ユーティリティを使用して、WebLogic Server IOR をコンソールに出力します。host2ior ユーティリティでは、SSL 接続用と非 SSL 用に 2 種類のインターオペラブル オブジェクト参照(IOR)が出力されます。IOR のヘッダは、IOR が SSL 接続で使用できるかどうかを示します。

  4. SSL IOR は、WebLogic Server JNDI ツリーにアクセスする CosNaming サービスへの初期参照を取得するときに使用します。

RMI over IIOP の使い方の詳細については、『WebLogic RMI over IIOP プログラマーズ ガイド』を参照してください。

 


パスワードの保護

WebLogic Server のリソースにアクセスするためのパスワードを保護することは重要です。ユーザ名とパスワードは以前、WebLogic Server セキュリティ レルムにクリア テキストで保存されていました。現在、WebLogic Server では、すべてのパスワードがハッシュ化されています。クライアントのリクエストを受け取ると、WebLogic Server はクライアントが提示するパスワードをハッシュ化して、ハッシュ化済みパスワードと一致するかどうか比較します。

filerealm.properties ファイルは、パスワードをハッシュ化するために使用する SerializedSystemIni.dat ファイルに関連付けられます。SerializedSystemIni.dat ファイルは、インストール時に \wlserver6.1\config\ ディレクトリに置かれます。

何らかの理由で SerializedSystemIni.dat ファイルが破損した場合は、WebLogic Server を再コンフィグレーションしなければなりません。

以下の注意事項を考慮してください。

config.xml ファイルには、クリア テキスト形式のパスワードが存在しなくなりました。クリア テキスト形式のパスワードに代わって、config.xml ファイルには暗号化およびハッシュ化されたパスワードが格納されます。暗号化パスワードは、別のドメインにコピーできません。その代わりに、config.xml ファイルを編集し、既存の暗号化およびハッシュ化されたパスワードをクリア テキストのパスワードで置換して、そのファイルを新しいドメインにコピーすることはできます。Administration Console は、次にそのファイルに書き込むときにパスワードを暗号化およびハッシュ化します。

セキュリティ攻撃では、パスワードを推測する方法が一般的です。ハッカーは、こうした攻撃でユーザ名とパスワードをさまざまに組み合わせてコンピュータにログ インしようとします。WebLogic Server では、パスワードを保護するための一連の属性を設けることで、パスワードの推測に対する保護を強化しています。

WebLogic Server デプロイメントでパスワードを保護するには、次の手順に従います。

  1. Administration Console を起動します。

  2. [セキュリティ] ノードをクリックします。

  3. Administration Console の右ペインで [パスワード] タブをクリックします。

  4. 指示に従って値を入力したり、必要なチェックボックスをチェックしたりすることで、このタブで必要な属性を定義します(詳細については次の表を参照してください)。

  5. [適用] ボタンをクリックして、選択を保存します。

  6. WebLogic Server を再起動します。

次の表では、[パスワード] タブの各属性について説明します。

表14-20 パスワード保護の属性

属性

説明

[最小パスワード文字数]

パスワードに必要な文字数。パスワードは 8 文字以上でなければならない。デフォルトは 8。

[ロックアウト有効化]

ユーザ アカウントへの無効なログインが指定された [ロックアウトしきい値] を超えたときにそのユーザ アカウントのロックを要求する。この属性はデフォルトで有効。

[ロックアウトしきい値]

アカウントにログ インしようとする場合に、アカウントがロックアウトされるまでにユーザが間違ったパスワードを入力してもよい回数。この回数を超えてログインを試みると、(ユーザ名/パスワードの組み合わせが正しい場合でも)セキュリティ例外が発生して、アカウントがロックアウトされる。システム管理者が明示的にロックを解除するか、またはロックアウト遅延時間が終了するまで、アカウントはロックアウトされたままとなる。ただし、無効なログインが [ロックアウト リセット遅延] 属性で定義された時間内に繰り返された場合。デフォルトは 5。

[ロックアウト遅延]

[ロックアウト リセット遅延] 属性で定義された時間内に無効なログインが一定回数以上繰り返されたためにユーザ アカウントがロックされた後、ユーザ アカウントにアクセスできるようになるまでの時間(分単位)。ユーザ アカウントをロック解除するには、weblogic.passwordpolicyunlockuser パーミッションが必要。デフォルトでは 30 分。

[ロックアウト リセット遅延]

ここで指定した分単位の時間内に一定回数以上の無効なログインが試みられた場合に、ユーザのアカウントをロックする。

[ロックアウトしきい値] 属性で定義された無効なログインの試行回数が、この属性に定義された時間内に行われた場合、アカウントはロックアウトされる。たとえば、この属性の値が 5 分で、6 分間に 3 回ログインが失敗した場合、アカウントはロックされない。しかし、5 分以内に 5 回の無効なログインが繰り返された場合、アカウントはロックされる。

デフォルトでは 5 分。

[ロックアウト キャッシュ サイズ]

試行しなかったログインと試行した無効なログインのキャッシュ サイズを指定する。デフォルトは 5。


 

 


監査プロバイダのインストール

WebLogic Server では、監査プロバイダを作成して、認証リクエストの受け取り、許可の成否、無効なデジタル証明書の提出などのセキュリティ イベントの通知を受け取ったり処理したりすることができます。

監査プロバイダを使用するには、weblogic.security.audit.AuditProvider インタフェースの実装を作成します。作成したら、Administration Console を使用してその実装をインストールし、アクティブにします。

監査プロバイダをインストールするには、Administration Console の [セキュリティ] ノードの [一般] タブの [監査プロバイダ クラス] 属性で、AuditProvider クラスの実装に名前を付けます。WebLogic Server を再起動します。

監査プロバイダの記述の詳細については、「セキュリティ イベントの監査」を参照してください。接続フィルタの作成例については、インストールされている WebLogic Server の \samples\examples\security ディレクトリに入っている LogAuditProvider のサンプルを参照してください。

 


接続フィルタのインストール

クライアントの出所やプロトコルに基づいてクライアントの接続を受け付けるか拒否するかを選択する接続フィルタを作成できます。クライアントが接続を完了し、何らかの処理を実行する前に、WebLogic Server は、クライアントの IP 番号とポート、プロトコル(HTTP、HTTPS、T3、T3S、または IIOP)、および WebLogic Server のポート番号を接続フィルタに渡します。この情報を調べることで、接続を許可するか、FilterException を生成して接続を終了するかを選択できます。

接続フィルタを使用するには、まず、weblogic.security.net.ConnectionFilter インタフェースの実装を作成する必要があります。作成したら、Administration Console を使用してその実装をインストールします。

接続フィルタをインストールするには、Administration Console の [セキュリティ] ウィンドウの [詳細設定] タブの [接続フィルタ] 属性で、weblogic.security.net.ConnectionFilter インタフェースの実装に名前を付けます。WebLogic Server を再起動します。

接続フィルタの記述の詳細については、「ネットワーク接続のフィルタリング」を参照してください。接続フィルタの作成例については、インストールされている WebLogic Server の \samples\examples\security ディレクトリに入っている SimpleConnectionFilter のサンプルを参照してください。

 


Java セキュリティ マネージャの設定

Java 2(JDK 1.2 または 1.3)環境で WebLogic Server を実行する場合、WebLogic Server では Java 2 の Java セキュリティ マネージャを使用して WebLogic Server リソースに追加のアクセス制御を提供できます。Java 仮想マシン(JVM)には、セキュリティ ポリシー ファイルから管理できるセキュリティ メカニズムが組み込まれています。Java セキュリティ マネージャを使用すると、CodeSource または SignedBy クラスに一連のパーミッションを強制的に付与できます。パーミッションによって、JVM のインスタンスで動作する特定のクラスが、特定の実行時の処理を行うかどうかを制御できます。多くの場合、脅威モデルでは、悪意あるコードが JVM で実行されることを想定していないため、Java セキュリティ マネージャは必要ありません。アプリケーション サービス プロバイダが WebLogic Server を使用し、未知のクラスが実行されるような場合では、Java セキュリティ マネージャが必要です。

注意: WebLogic Server の 6.0 より前のリリースでは、Java セキュリティ マネージャは、WebLogic Server の起動時に -Dweblogic.security.manager プロパティを使用することで有効になりました。WebLogic Server バージョン 6.0 以降ではプロパティが変更されていることに注意してください。

WebLogic Server で Java セキュリティ マネージャを使用するには、WebLogic Server の起動時に -Djava.security.manager property プロパティを指定します。

Java セキュリティ マネージャでは、パーミッションを定義するセキュリティ ポリシー ファイルを使用します。セキュリティ ポリシーの絶対パス名は、WebLogic Server の起動時に -Djava.security.policy プロパティで指定します。セキュリティ ポリシー ファイルを指定しないで Java セキュリティ マネージャを有効にする場合、Java セキュリティ マネージャでは、$JAVA_HOME\lib\security ディレクトリの java.security および java.policy ファイルで定義されるデフォルトのセキュリティ ポリシーを使用します。

WebLogic Server には weblogic.policy というサンプルのセキュリティ ポリシー ファイルがあります。このファイルにはデフォルトのパーミッションが含まれています。

WebLogic Server デプロイメントで Java セキュリティ マネージャのセキュリティ ポリシー ファイルを使用するには、次の操作を行います。

  1. weblogic.policy ファイルの次の行を編集して、指定の場所を WebLogic Server のインストール先で置き換えます。

    grant codebase "file://BEA/-"{

    permission java.io.FilePermission "D:${/}BEA${/}=", ...

    注意: この変更は、インストール先ディレクトリの構造が、『BEA WebLogic Server インストール ガイド』で説明されているものと同じ構造であることを前提としています。

  2. Administration Console を実行する場合は、weblogic.policy ファイルに次のような grant ブロックとパーミッションを追加します。

    grant {

    permission java.io.FilePermission
    "D:{/}BEA${/}wlserver6.1${/}weblogic${/}management${/}console${
    /}-", "read";

    permission java.io.FilePermission
    "D:{/}BEA${/}wlserver6.1${/}config${/}${/}applications${/}.wl_t
    emp_do_not_delete${/}weblogic${/}management${/}console${/}-",
    "read";

    permission java.util.PropertyPermission "user.*", "read";
    };

  3. CLASSPATH に追加のディレクトリがある場合、または追加のディレクトリにアプリケーションをデプロイしている場合は、それらのディレクトリに対する特定のパーミッションを weblogic.policy ファイルに追加します。

  4. 次のような注意事項を考慮することをお勧めします。

  5. WebLogic Server デプロイメントで Java セキュリティ マネージャと weblogic.policy ファイルを使用するには、WebLogic Server の起動時に次のようなプロパティを使用します。

    $java... -Djava.security.manager\

    -Djava.security.policy==D:/BEA/wlserver6.1/lib/weblogic.policy

警告: Java セキュリティ マネージャは、管理サーバと管理対象サーバの起動中には一部無効になります。 起動シーケンスでは、現在の Java セキュリティ マネージャは無効になり、checkRead() メソッドを無効にしてあるバージョンの Java セキュリティ マネージャに置き換えられます。 無効になっている間、このメソッドは起動シーケンスのパフォーマンスを大きく改善しながら、セキュリティの低下は最小限に抑えます。WebLogic Server のスタートアップ クラスは、この一部無効になっている Java セキュリティ マネージャで実行され、そのため、クラスは、セキュリティを考慮するため、ファイルを読み込んで、慎重に調べる必要があります。

Java セキュリティ マネージャの詳細については、Java 2 に付属している Javadoc を参照してください。

 


サードパーティまたはユーザが作成したクラスの weblogic.policy ファイルの変更

サーバサイド ユーザ コードを置く最適の位置は、weblogic/myserver/serverclasses ディレクトリです。そのディレクトリに入っていないサードパーティまたはユーザが作成するクラスがある場合は、以下のステップを実行して、保護します。

  1. weblogic.policy ファイル内の "grant codeBase..." からそれを閉じる括弧およびセミコロンまでのコード ブロック全体をコピーします。

  2. 選択した部分を、weblogic.policy ファイルのさっきコピーした箇所の下に貼りつけます。

  3. grant codeBase 文と permission.java.io.FilePermission 文について、そのディレクトリがサードパーティまたはユーザが作成したコードの位置を指すように編集します。

この手順で、WebLogic Server のためのパーミッションとそっくり同じパーミッションを持つ独自のコード用のセキュリティ ポリシーを作成します。 これらのパーミッションを詳細に検討し、そのディレクトリに対して求めるセキュリティ ポリシーになってるかどうか確認してください。

警告: UNIX システムでの JavaSoft JDK バージョン 1.2.1では、 WebLogic Server ソフトウェアがファイル システムのルート ディレクトリやディスク ドライブにインストールされている場合、セキュリティ ポリシーが正しく適用されません。ポリシーが正しく適用されるのは、grant codeBase URL 内のパスにあるコンポーネントが 1つだけの場合です。 たとえば、c:\test\weblogic (または Solaris なら /home/weblogic)に WebLogic Server をインストールしている場合、たとえセキュリティ ポリシー ファイルで正しい URL を使用していても、AccessControlException となります。

この制限を回避するためにできることは、 WebLogic をルート ディレクトリにインストールするか(推奨)、またはその URL を変更して、WebLogic をインストールしたパスへの最初のコンポーネントだけを含むようにするかです。たとえば、次のようにします。

grant codeBase "file:/c:/test/" {

指定した URL のなかで「/-」を使用すると、問題が発生します。この問題は、 Sun Microsytems でもバグ #4261298 として認識されていますが、JDK 内でのバグではないと判断されています。 「パスの最期に“/-” が付いていると、その前の要素が 1 つのディレクトリであるということを意味し、 その下の要素すべてに対して機能を許可します。そのディレクトリ自体を読み込めるという意味ではない」とのことです。このニュアンスに対応するには、そのディレクトリだけを含む(「/-」の付かない) FilePermission エントリをもう 1 つ追加することです。

 


レコーディング セキュリティ マネージャ ユーティリティの使い方

レコーディング セキュリティ マネージャ ユーティリティを使用すると、WebLogic Server の起動時または動作中に発生するパーミッションの問題を検出できます。ユーティリティでは、ユーティリティが見つけたパーミッションの問題を解決するために、セキュリティ ポリシー ファイルに追加できるパーミッションを出力します。レコーディング セキュリティ マネージャは BEA dev2dev Online で入手できます。

 


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

セキュリティ コンテキストの伝播を使用すると、WebLogic Server 環境で動作している Java アプリケーションから、BEA Tuxedo ドメイン内のオブジェクトにアクセスして操作することができます。WebLogic Server の BEA WebLogic Enterprise Connectivity コンポーネントには、セキュリティ コンテキストの伝播機能があります。

セキュリティ コンテキストの伝播を使用する場合、WebLogic Server セキュリティ レルムで定義されているユーザのセキュリティ ID が、WLEC 接続プールの一部をなすネットワーク接続を通して BEA Tuxedo ドメインに送信される Internet Inter-ORB Protocol(IIOP)リクエストのサービス コンテキストの一部として伝播されます。WLEC 接続プール内の各ネットワーク接続は、定義済みのユーザ ID を使用して認証されます。

セキュリティ コンテキストの伝播を使用するには、WebLogic Server からアクセスする BEA Tuxedo ドメインごとに WLEC 接続プールを作成します。WebLogic Server は、IIOP 接続を各 WLEC 接続プールに追加します。WebLogic Server 環境の Java アプリケーションは、WLEC 接続プールから取得した IIOP 接続を使用して、BEA Tuxedo ドメインのオブジェクトを呼び出したり、処理を要求したりします。

セキュリティ コンテキストの伝播を使用する前に、TUXDIR\lib\wleorb.jarTUXDIR\lib\wlepool.jar を、startAdminWebLogic.sh ファイルまたは startAdminWebLogic.cmd ファイルの CLASSPATH 変数に追加します。

詳細については、『WebLogic Enterprise Connectivity ユーザーズ ガイド』を参照してください。

セキュリティ コンテキストの伝播を実装するには、次の操作を行います。

  1. Administration Console の左ペインで [サービス|WLEC] ノードを選択します。

  2. Administration Console の右ペインで、[新しい WLEC Connection Pool のコンフィグレーション] リンクをクリックします。

  3. 次の表の属性を定義します。

    表14-21 [一般] タブの WLEC 接続プールの属性

    属性

    説明

    [名前]

    WLEC 接続プールの名前。この名前は WLEC 接続プールごとにユニークでなければならない。

    [プライマリ アドレス]

    WLEC 接続プールと BEA Tuxedo ドメインとの接続を確立するために使用する IIOP リスナ/ハンドラのアドレスのリスト。各アドレスのフォーマットは、//hostname:port

    アドレスは、UBBCONFIG ファイルに定義されている ISL アドレスと一致しなければならない。アドレスとアドレスの区切りにはセミコロンを使用する。たとえば、//main1.com:1024; //main2.com:1044 になる。

    SSL プロトコルを使用するよう WLEC 接続プールをコンフィグレーションするには、IIOP リスナ/ハンドラのアドレスに corbalocs プレフィックスを付ける。次に例を示す。corbalocs://hostname:port

    [フェイルオーバー アドレス]

    [プライマリ アドレス] 属性に定義されているアドレスを使って接続を確立できない場合に使用される IIOP リスナ/ハンドラのアドレスのリスト。アドレスとアドレスの区切りにはセミコロンを使用する。この属性は省略可能。

    [ドメイン]

    WLEC 接続プールの接続先 BEA Tuxedo ドメインの名前。WLEC 接続プールは、BEA Tuxedo ドメインにつき 1 つしか定義できない。ドメイン名は、BEA Tuxedo ドメインの UBBCONFIG ファイルの RESOURCES セクションの domainid パラメータに一致しなければならない。

    [最小プール サイズ]

    WebLogic Server が起動したときに、WLEC 接続プールに追加する IIOP 接続の数。デフォルトは 1。

    [最大プール サイズ]

    WLEC 接続プールから開始できる IIOP 接続の最大数。デフォルトは 1。


     

  4. [作成] ボタンをクリックします。

  5. Administration Console の [WLEC 接続プール] ウィンドウの [コンフィグレーション] タブにある [セキュリティ] タブで属性を定義して、WebLogic Server セキュリティ レルムのユーザのセキュリティ コンテキストを BEA Tuxedo ドメインに伝播します。次の表では、これらの属性について説明します。

    表14-22 [セキュリティ] タブの WLEC 接続プールの属性

    属性

    説明

    [ユーザ名]

    BEA Tuxedo ユーザ名。BEA Tuxedo ドメインのセキュリティ レベルが USER_AUTHACL、または MANDATORY_ACL の場合にのみ指定する。

    [ユーザ パスワード]

    [ユーザ名] 属性に定義したユーザのパスワード。[ユーザ名] 属性を定義する場合にのみ指定する。

    [ユーザ ロール]

    BEA Tuxedo ユーザ ロール。この属性は、BEA Tuxedo ドメインのセキュリティ レベルが APP_PWUSER_AUTHACL、または MANDATORY_ACL の場合にのみ指定する。

    [アプリケーション パスワード]

    BEA Tuxedo アプリケーション パスワード。BEA Tuxedo ドメインのセキュリティ レベルが APP_PWUSER_AUTHACL、または MANDATORY_ACL の場合にのみ指定する。

    [最小暗号化レベル]

    BEA Tuxedo ドメインと WebLogic Server との間で使用される SSL の最小暗号化レベル。指定できる値は、0、40、56、128。ゼロ(0)は、データを署名するが暗号化しないことを示す。40、56、および 128 は暗号キーの長さ(ビット単位)を指定する。最小暗号化レベルが満たされていない場合、BEA Tuxedo と WebLogic Server との SSL 接続は失敗する。デフォルトは 40。

    [最大暗号化レベル]

    BEA Tuxedo ドメインと WebLogic Server との間で使用される SSL の最大暗号化レベル。指定できる値は、0、40、56、128。ゼロ(0)は、データを署名するが暗号化しないことを示す。40、56、および 128 は暗号キーの長さ(ビット単位)を指定する。最小暗号化レベルが満たされていない場合、BEA Tuxedo と WebLogic Server との SSL 接続は失敗する。デフォルト値は 0。

    [証明書を有効化]

    証明書に基づく認証を有効にする。

    デフォルトでは、証明書は無効。

    [セキュリティ コンテキストを有効化]

    WebLogic Server ユーザのセキュリティ コンテキストを BEA Tuxedo ドメインに渡せるようにする。

    デフォルトでは、セキュリティ コンテキストは無効。


     

  6. 変更を保存するには、[適用] ボタンをクリックして、WebLogic Server を再起動します。

  7. tpusradd コマンドを実行して、WebLogic Server ユーザを WebLogic エンタープライズ ドメインで許可済みのユーザとして定義します。

  8. ISL コマンドの -E オプションを設定して、WebLogic Server レルムから伝播されたセキュリティ コンテキストを認識して利用するよう IIOP リスナ/ハンドラをコンフィグレーションします。ISL コマンドの -E オプションでは、プリンシパル名を指定する必要があります。プリンシパル名によって、WLEC 接続プールが WebLogic エンタープライズ ドメインにログ インするために使用するプリンシパルが定義されます。プリンシパル名は、WLEC 接続プールを作成するときに [ユーザ名] 属性に定義した名前と一致しなければなりません。

WebLogic Server 環境と BEA Tuxedo 環境の間で証明書に基づく認証を使用する場合は、WebLogic Server 環境から BEA Tuxedo CORBA オブジェクトへの接続を確立するときに新しい SSL ハンドシェークが実行されます。同じ SSL ネットワーク接続を使用して複数のクライアント リクエストをサポートするには、そうした処理を行うように証明書を次のように設定しなければなりません。

  1. WebLogic Server ユーザに対応するデジタル証明書を取得して、プライベート キーを BEA Tuxedo の TUXDIR\udataobj\security\keys ディレクトリに入れます。

  2. BEA Tuxedo CORBA アプリケーションの UBBCONFIG ファイルでは、tpusradd コマンドを使用して WebLogic Server ユーザを BEA Tuxedo ユーザとして定義します。

  3. -E オプションを使用して UBBCONFIG ファイルの IIOP リスナ/ハンドラを定義して、WebLogic Server ユーザが認証用に使用されることを示します。

  4. WebLogic Server の Administration Console で WLEC 接続プールを作成するときに、[ユーザ名] 属性に WebLogic Server ユーザ名を定義します。

  5. IIOP リスナ/ハンドラのデジタル証明書を取得します。

  6. ISL コマンドの SEC_PRINCIPAL_NAME オプションでデジタル証明書を指定し、-S オプションを使用して、セキュア ポートを BEA Tuxedo ドメインと WebLogic Server セキュリティ レルムとの間で使用することを示します。

UBBCONFIG ファイルの詳細については、BEA Tuxedo のマニュアルの「Creating a Configuration File」を参照してください。

corbalocs プレフィックスの詳細については、BEA Tuxedo のマニュアルの「Understanding the Address Formats of the Bootstrap Object」を参照してください。

BEA Tuxedo のセキュリティ レベルの詳細については、BEA Tuxedo のマニュアルの「Defining a Security Level」を参照してください。

 


SSL 証明書の検証

これまでのリリースでは、証明書チェーンの各証明書が認証局 (CA) によって発行されていることを WebLogic Server は確認していませんでした。この問題は、誰かが信頼性のある CA から個人証明書を取得し、その証明書を使って他の証明書を発行しても、WebLogic Server はその無効な証明書を検出できないことを意味しました。WebLogic Server で使用されているすべての X509 V3 CA 証明書が CA として定義されている Basic Constraint 拡張を持つことで、証明書チェーン内のすべての証明書が認証局によって発行されたものであることを保証しなければならないようにするため、パッチ (CR090101_610sp4) が作成されました。デフォルトでは、この条件を満たさない CA 証明書はすべて拒否されます。ここでは、このパッチのインストール方法、および証明書検証のレベルを制御するコマンドライン引数について説明します。

インストール方法

パッチ CR090101_610sp4 をインストールするには:

  1. 現在の WebLogic Server のインストールをバックアップします。以下のいずれかのファイルを変更してある場合、現在の WebLogic Server インストール環境にパッチをインストールすると、その変更は失われます。

    %WL_HOME%\common\nodemanager\config\democert.pem

    %WL_HOME%\common\nodemanager\config\demokey.pem

    %WL_HOME%\samples\server\config\examples\demo.crt

    %WL_HOME%\samples\server\config\examples\democert.pem

    %WL_HOME%\samples\server\config\examples\demokey.pem

    %WL_HOME%\samples\server\examples\trusted.crt

    %WL_HOME%\samples\server\config\petstore\demo.crt

    %WL_HOME%\samples\server\config\petstore\democert.pem

    %WL_HOME%\samples\server\config\petstore\demokey.pem

    %WL_HOME%\samples\server\config\petstore\trusted.crt

    %WL_HOME%\server\lib\cacerts

    %WL_HOME%\server\lib\demo.crt

    %WL_HOME%\server\lib\trusted.crt

    通常は、これらのファイルは変更されていません。しかし、変更してある場合は、更新された証明書、プライベート キー、およびキーストアのインストールを続ける方法を決める必要があります。たとえば、パッチからサービス パックの JAR ファイルだけを選択してインストールすることもできます。

  2. パッチの zip ファイルの内容を WL_HOME で解凍し、zip ファイルのディレクトリ構造を維持します。

    WebLogic Server のインストール環境に、以下のファイルが追加されます。

    %WL_HOME%\server\lib\CR090101_610sp4_webservice.jar

    %WL_HOME%\server\lib\CR090101_610sp4_websvssl.jar

    %WL_HOME%\server\lib\CR090101_610sp4_websvssl_pj.jar

    %WL_HOME%\server\lib\CR090101_610sp4_.jar

    WebLogic Server インストール環境の以下のファイルは変更されます。

    %WL_HOME%\common\nodemanager\config\democert.pem

    %WL_HOME%\common\nodemanager\config\demokey.pem

    %WL_HOME%\samples\server\config\examples\demo.crt

    %WL_HOME%\samples\server\config\examples\democert.pem

    %WL_HOME%\samples\server\config\examples\demokey.pem

    %WL_HOME%\samples\server\examples\trusted.crt

    %WL_HOME%\samples\server\config\petstore\demo.crt

    %WL_HOME%\samples\server\config\petstore\democert.pem

    %WL_HOME%\samples\server\config\petstore\demokey.pem

    %WL_HOME%\samples\server\config\petstore\trusted.crt

    %WL_HOME%\server\lib\cacerts

    %WL_HOME%\server\lib\demo.crt

    %WL_HOME%\server\lib\trusted.crt

    名前の衝突を防ぐため、新しい demo CA の証明書の Subject DN は、既存の demo CA の証明書のものとは異なります。Subject DN が変更されたことで、新旧の証明書チェーンの区別も容易になっています。新しい demo CA および demo1024 CA の証明書では、Subject DN の Common Name に Constraints が含まれています。

    エンド エンティティ証明書だけがある場合は、Issuer DN を見ることで古いものか新しいものかを確認することもできます。

  3. WebLogic Server の環境スクリプトを変更して、パッチ用の JAR ファイルを追加します。

  4. パッチのファイルを使って、既存のドメインの証明書、プライベート キー、キーストアを更新します。

パッチが適用されていない古いアプリケーションは、このパッチでインストールされた新しい demo CA の証明書を信頼しません。たとえば、古い demo CA 証明書をまだ信頼しているクライアントは、新しい demo 証明書チェーンを使用するサーバを拒否します。この問題を解決するには、このパッチで提供される新しい demo CA を含むよう、クライアントの信頼できる CA のリストを更新してください。

証明書検証のレベルの制御

デフォルトでは、WebLogic Server は、CA として定義されている Basic Constraint 拡張を持たない証明書チェーン中の証明書を、すべて拒否します。ただし、この要件を満たさない証明書を使用したり、IETF RFC 2459 標準に準拠するようセキュリティのレベルを上げたりすることができます。WebLogic Server が実行する証明書検証のレベルを制御するには、次のコマンドライン引数を使用します。

-Dweblogic.security.SSL.enforceConstraints

表 14-23 は、このコマンドライン引数のオプションの説明です。

表14-23 -Dweblogic.security.SSL.enforceConstraints のオプション

オプション

説明

strong または true

CA 証明書の Basic Constraints 拡張が CA として定義されていることを検査するには、このオプションを使用します。

例:

-Dweblogic.security.SSL.enforceConstraints=strong

または

-Dweblogic.security.SSL.enforceConstraints=true

デフォルトでは、WebLogic Server はこのレベルの証明書検証を行います。

strict

CA 証明書の Basic Constraints 拡張が CA として定義されていて、 critical に設定されていることを検査するには、このオプションを使用します。このオプションは、IETF RFC 2459 標準を適用します。

例:

-Dweblogic.security.SSL.enforceConstraints=strict

多くの商用 CA 証明書が IETF RFC 2459 標準に準拠していないため、このオプションはデフォルトにはなっていません。

off

証明書の検証を無効にするには、このオプションを使用します。このオプションは慎重に使用する必要があります。たとえば、信頼できる商用認証局から CA 証明書を購入し、その証明書が新しい検証に合格しない場合には、このオプションを使用してください。ただし、ほとんどの商用認証局が発行する CA 証明書は、デフォルトの strong オプションで動作するはずです。

例:

-Dweblogic.security.SSL.enforceConstraints=off

プロダクション環境ではこのオプションを使用しないことをお勧めします。代わりに、IETF RFC 2459 標準に適合する新しい CA 証明書を購入してください。


 
 

証明書チェーンの検査

既存の証明書チェーンが WebLogic Server によって拒否されるかどうかを検査するために、ValidateCertChain コマンドライン ユーティリティが提供されています。このユーティリティは、PEM ファイル、PKCS-12 ファイル、PKCS-12 キーストア、および JDK キーストアの証明書チェーンを使用します。完全な証明書チェーンを使用する必要があります。ValidateCertChain コマンドライン ユーティリティの構文は、以下のとおりです。

java utils.ValidateCertChain -file pemcertificatefilename
java utils.ValidateCertChain -pem pemcertificatefilename
java utils.ValidateCertChain -pkcs12store pkcs12storefilename
java utils.ValidateCertChain -pkcs12file pkcs12filename password
java utils.ValidateCertChain -jks alias storefilename [storePass]

有効な証明書チェーンの例:

java utils.ValidateCertChain -pem zippychain.pem

Cert[0]: CN=zippy,OU=FOR TESTING
ONLY,O=MyOrganization,L=MyTown,ST=MyState,C=US

Cert[1]: CN=CertGenCAB,OU=FOR TESTING
ONLY,O=MyOrganization,L=MyTown,ST=MyState,C=US

Certificate chain appears valid

無効な証明書チェーンの例:

java utils.ValidateCertChain -jks mykey mykeystore

Cert[0]: CN=corba1,OU=FOR TESTING ONLY, O=MyOrganization,L=MyTown,ST=MyState,C=US

CA cert not marked with critical BasicConstraint indicating it is a CA
Cert[1]: CN=CACERT,OU=FOR TESTING ONLY, O=MyOrganization,L=MyTown,ST=MyState,C=US

Certificate chain is invalid

証明書に関する問題のトラブルシューティング

パッチを適用する前は動作していた SSL 通信が、パッチのインストール後は失敗するようになった場合は、おそらく、WebLogic Server が使用する証明書チェーンが検証で不合格になっているのが問題です。

証明書チェーンが拒否されている箇所を特定し、受け付けられる証明書チェーンに更新するのか、または -Dweblogic.security.SSL.enforceConstraints コマンドライン引数の設定を変更するのかを決定してください。

証明書に関する問題のトラブルシューティングでは、次のいずれかの方法を使用します。

 

back to top previous page next page