BEA ホーム | 製品 | dev2dev | support | askBEA |
![]() |
|
![]() |
e-docs > > > 互換性セキュリティ |
|
このトピックでは、互換性セキュリティを使用する場合のセキュリティのコンフィグレーションと管理について説明します。詳細については、『WebLogic セキュリティの管理』の「互換性セキュリティの使い方」を参照してください。 WebLogic Server 7.0 のセキュリティ機能の使い方については、Administration Console オンライン ヘルプのセキュリティおよび『WebLogic セキュリティの管理』を参照してください。
互換性セキュリティとは、WebLogic Server 6.x のセキュリティ コンフィグレーションを WebLogic Server 7.0 で実行する機能のことです。 互換性セキュリティでは、WebLogic Server 6.x と同様に、セキュリティ レルムのコンフィグレーション、ユーザ、グループ、および ACL の定義を行います。
詳細については、『BEA WebLogic Server 7.0 へのアップグレード』を参照してください。
互換性セキュリティを正常に実行しているかどうかを確認するには、次の手順に従います。
また、[CompatibilitySecurity] ノードが WebLogic Server Administration Console に表示されます。
レルム アダプタ認証プロバイダ内の ID アサーション プロバイダのコンフィグレーション
レルム アダプタ認証プロバイダには ID アサーション プロバイダが含まれています。ID アサーション プロバイダは、weblogic.security.acl.CertAuthenticator クラスの実装に下位互換性を提供します。ID アサーションは X.509 トークンに関して実行されます。デフォルトでは、ID アサーション プロバイダはレルム アダプタ認証プロバイダで有効になっていません。
レルム アダプタ認証プロバイダで ID アサーションを有効にするには、次の手順に従います。
レルム アダプタ監査プロバイダでは、互換性セキュリティを使用した場合に weblogic.security.audit.AuditProvider クラスの実装を使用できます。 レルム アダプタ監査プロバイダが正しく動作するためには、weblogic.security.audit.AuditProvider class クラスの実装が、[ドメイン|セキュリティ|一般] タブの [監査プロバイダ クラス] 属性に定義されている必要があります。
レルム アダプタ監査プロバイダをコンフィグレーションするには、次の手順に従います。
あるドメインの管理サーバと管理対象サーバを使用する場合、管理対象サーバは常にそのドメインの管理サーバのパスワードを使用しなければなりません。管理サーバのパスワードは、常に WebLogic Server Administration Console を使用して変更してください。WebLogic Server を再起動すると、新しいパスワードは、そのドメインのすべての管理対象サーバに伝達されます。
CompatibilityRealm のファイル レルムのコンフィグレーション
ファイル レルムをコンフィグレーションするには、次の手順に従います。
ファイル レルムの代わりに、WebLogic Server に用意されている代替セキュリティ レルム、またはカスタム セキュリティ レルムを使用する場合、目的のレルムの属性を設定し、WebLogic Server を再起動します。いずれかの代替セキュリティ レルムを使用する場合、キャッシング レルムをコンフィグレーションする必要があります。
ファイル レルムのすべてのユーザおよびグループ データは、fileRealm.properties ファイルに格納されます。 fileRealm.properties ファイルが破損または破壊された場合、WebLogic Server のセキュリティ情報を再コンフィグレーションしなければなりません。 互換性セキュリティは、fileRealm.properties ファイルがないと実行できません。 カスタム セキュリティ レルムを記述する場合でも、WebLogic Server を起動するために fileRealm.properties ファイルは必要です。したがって、次の手順を実行することをお勧めします。
注意: また、ファイル レルムの SerializedSystemIni.dat ファイルのバックアップも作成します。
CompatibilityRealm のキャッシング レルムのコンフィグレーション
キャッシング レルムは、代替セキュリティ レルムまたはカスタム セキュリティ レルムと連携し、適切な認証および認可を得たクライアントのリクエストを遂行します。キャッシング レルムは、成功したレルム ルックアップと失敗したレルム ルックアップの両方の結果を格納します。キャッシング レルムは、ユーザ、グループ、パーミッション、ACL、および認証リクエストのキャッシュを別々に管理します。キャッシング レルムによって、ルックアップがキャッシュされ、ほかのセキュリティ レルムへの呼び出し数が減るので、WebLogic Server のパフォーマンスが向上します。
代替セキュリティ レルムまたはカスタム セキュリティ レルムを使用する場合は、代替またはカスタム セキュリティ レルムのコンフィグレーション後にキャッシング レルムをコンフィグレーションして有効にする必要があります。
キャッシュを有効化すると、キャッシング レルムによって、レルム ルックアップの結果がキャッシュに保存されます。ルックアップの結果は、存続時間 (TTL) 属性に定義された秒数が経過する (ルックアップ結果の有効期限が切れる) か、またはキャッシュがいっぱいになるまで、キャッシュ内に残ります。キャッシュがいっぱいになると、ルックアップの結果はキャッシュ内で最も古い結果と置き換えられます。TTL 属性によって、キャッシュされたオブジェクトの有効期間が決定されます。これらの属性に設定する値が大きいほど、キャッシング レルムが二次セキュリティ レルムを呼び出す回数が減ります。呼び出し回数が減ると、パフォーマンスは向上します。パフォーマンスが向上する代わりに、基のセキュリティ レルムへの変更は、キャッシュされたオブジェクトの有効期間が切れるまで認識されません。
デフォルトでは、キャッシング レルムは、代替セキュリティ レルムが大文字/小文字を区別することを前提にして処理します。 大文字と小文字を区別するセキュリティ レルムでは、たとえばユーザ名 bill と Bill のオーナは別々のユーザとして扱われます。大文字/小文字を区別しないセキュリティ レルムの例として、Windows NT セキュリティ レルムと LDAP セキュリティ レルムが挙げられます。大文字/小文字を区別しないセキュリティ レルムを使用する場合は、[キャッシュで大文字/小文字を区別] 属性を無効化しなければなりません。この属性を設定すると、キャッシング レルムでは、大文字/小文字を区別して比較した場合に WebLogic Server がセキュリティ レルムの正しい結果を返すように、ユーザ名が小文字に変換されます。大文字/小文字を区別するセキュリティ レルムのユーザまたはグループを定義したり参照したりする場合には、ユーザ名を小文字で入力します。
キャッシング レルムをコンフィグレーションするには、次の手順に従います。
CompatibilityRealm の LDAP レルム V1 のコンフィグレーション
LDAP セキュリティ レルムは、Lightweight Directory Access Protocol (LDAP) サーバを通じて認証機能を提供します。 This server allows you to manage all the users for your organization in one place: the LDAP directory.LDAP セキュリティ レルムは、Open LDAP、Netscape iPlanet、Microsoft Site Server、および Novell NDS ディレクトリ サーバをサポートしています。
LDAP V1 セキュリティ レルムをコンフィグレーションするには、次の手順に従います。
LDAP V1 セキュリティ レルムにおけるユーザの保存方法の指定
LDAP V1 セキュリティ レルムにおけるグループの保存方法の指定
CompatibilityRealm の LDAP レルム V2 のコンフィグレーション
LDAP レルム V2 のコンフィグレーションでは、LDAP サーバと通信するためにセキュリティ レルムを有効化する属性と、ユーザおよびグループを LDAP ディレクトリに格納する方法を指定する属性を定義します。互換性セキュリティでは、LDAP レルム V2 はカスタム セキュリティ レルムとしてコンフィグレーションされます。
LDAP ツリーおよびスキーマは、LDAP サーバごとに異なります。 サポートされているサーバのテンプレート では、サポートされている LDAP サーバ用のテンプレートを示してあります。これらのテンプレートでは、サポートされている各 LDAP サーバのユーザおよびグループを表現するためのデフォルト コンフィグレーション情報が指定されています。
LDAP レルム V2 を使用するには、次の手順に従います。
次の表では、[新しい CustomRealm の作成] ウィンドウの [コンフィグレーション] タブで設定する属性について説明します。
defaultLDAPRealmForNetscapeDirectoryServer などの LDAP レルム V2 の名前。 |
|
LDAP V2 レルムを実装する WebLogic クラスの名前 (weblogic.security.ldaprealmv2. |
|
以下に関して LDAP コンフィグレーションに固有の情報を指定する。
サポートされている LDAP サーバ用のサンプル値については、サポートされているサーバのテンプレートを参照。 |
リスト21-1 から リスト21-4 は、LDAP レルム V2 でサポートされている LDAP サーバのコンフィグレーションに使用するテンプレートです。 これらのテンプレートをアプリケーションの config.xml ファイルにそのままコピーします。
警告: 以下のコード例の各行は、1 行で入力する必要があります。コード例はこのマニュアルの幅に合わせて書式が整えられており、その書式に合わせるために分かれている行もあります。 このテキストを config.xml ファイルに貼り付ける場合は、コード内で 1 行になるように、分かれた行をつなげてください。
コード リスト 21-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=(&(uid=%u)(objectclass=person));
group.dn=ou=groups,o=beasys.com;
group.filter=(&(cn=%g)(objectclass=groupofuniquenames));
membership.filter=(&(uniquemember=%M)
(objectclass=groupofuniquenames));
"Notes="Before enabling the LDAP V2 security realm, edit the configuration parameters for your environment."/>
コード リスト 21-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=(&(cn=%u)(objectclass=member)
(!userAccountControl:1.2.840.113556.1.4.803:=2)));
group.dn=ou=Groups, o=ExampleMembershipDir;
group.filter=(&(cn=%g)(objectclass=mgroup));
membership.scope.depth=1;microsoft.membership.scope=sub;
membership.filter=(|(&(memberobject=%M)
(objectclass=memberof))(&(groupobject=%M)
(objectclass=groupmemberof)));
membership.search=true;
"Notes="Before enabling the LDAP V2 security realm, edit the configuration parameters for your environment."/>
コード リスト 21-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=(&(cn=%u)(objectclass=person));
group.dn=ou=groups,o=example.com;
group.filter=(&(cn=%g)(objectclass=groupofuniquenames));
membership.filter=(&(member=%M)
(objectclass=groupofuniquenames));"
"Notes="Before enabling the LDAP V2 security realm, edit the configuration parameters for your environment."/>
コード リスト 21-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=(&(uid=%u)(objectclass=person));
group.dn=ou=groups,dc=example,c=com;
group.filter=(&(cn=%g)(objectclass=groupofuniquenames));
membership.filter=(&(uniquemember=%M) (objectclass=groupofuniquenames));"
"Notes="Before enabling the LDAP V2 security realm, edit the configuration parameters for your environment."/>
CompatibilityRealm の 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 セキュリティ レルムを使用するには、次の手順に従います。
次のコマンドを使用して、指定された Windows NT ユーザとして WebLogic Server を実行するための正しい特権を持っていることを確認します。
java weblogic.security.ntrealm.NTRealm username password
username と password は、WebLogic Server を実行する Windows NT アカウントのユーザ名とパスワードです。
このコマンドの出力によって、指定されたユーザ名とパスワードが適切に認証されたかどうかわかります。
テストの結果、WebLogic Server を実行するクライアントまたはユーザが Windows NT セキュリティ レルムを実行する特権を持っていないことがわかった場合、WebLogic Server を実行する Windows ユーザのパーミッション (権利と呼ばれる) を更新する必要があります。 詳細については、Windows NT と Windows 2000 のユーザ パーミッションの更新を参照してください。
Windows NT と Windows 2000 のユーザ パーミッションの更新
Windows NT で権利を更新するには、次の手順に従います。
Windows 2000 で権利を更新するには、次の手順に従います。
Windows NT セキュリティ レルムを使用する場合に発生する Windows NT の一般的なエラーを以下に示します。
Windows NT のエラー コードについては、winerror.h ファイルで詳しく説明されています。
CompatibilityRealm の UNIX セキュリティ レルムのコンフィグレーション
注意: UNIX セキュリティ レルムは、Solaris および Linux プラットフォーム上でのみ動作します。
UNIX セキュリティ レルムでは、wlauth という小さなネイティブ プログラムを実行して、ユーザとグループをルックアップしたり、UNIX ログイン名とパスワードに基づいてユーザを認証したりします。 wlauth プログラムは、Pluggable Authentication Modules (PAM) を使用します。これにより、オペレーティング システムの認証サービスを、このサービスを使用するアプリケーションを変更することなくコンフィグレーションできます。
ACL を変更したら、[セキュリティ] の [一般] タブの [更新] をクリックして、WebLogic Server が使用する filerealm.properties ファイル内の情報を更新します。ACL でグループを使用する場合は、WebLogic Server の情報を更新する回数を減らします。UNIX グループのメンバーを変更すると、WebLogic Server リソースへの個々のユーザのアクセスを動的に管理できます。
wlauth は、setuid root を実行します。wlauth プログラムの所有権とファイル属性を変更し、wlauth の PAM コンフィグレーション ファイルの設定を行うには、ルート パーミッションが必要です。
UNIX セキュリティ レルム用の wlauth プログラムを設定するには、次の手順に従います。
# chown root wlauth
# chmod +xs wlauth
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
UNIX セキュリティ レルムをコンフィグレーションするには、次の手順に従います。
CompatibilityRealm の RDBMS セキュリティ レルムのコンフィグレーション
注意: RDBMS セキュリティ レルムの実装で getActiveDomain() メソッドを使用する場合、互換性セキュリティで RDBMS セキュリティ レルムを使用できるようにするために、RDBMSDelegate クラスを編集および再コンパイルする必要があります。 getActiveDomain() メソッドを、weblogic.server パッケージの getSecurityConfig() メソッドと置き換えます。
RDBMS セキュリティ レルムは BEA 独自のカスタム セキュリティ レルムで、ユーザ、グループ、および ACL をリレーショナル データベースに保存します。データベースに入力する SQL スクリプトを使用すると、RDBMS セキュリティ レルムのグループを作成できます。
RDBMS セキュリティ レルムをコンフィグレーションするには、次の手順に従います。
リスト21-5 には、WebLogic Server 付属の RDBMS セキュリティ レルムのスキーマ プロパティに入力されているデータベース文を示してあります。
コード リスト 21-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 = ?"
CompatibilityRealm のカスタム セキュリティ レルムのインストール
ネットワーク上のディレクトリ サーバなどの既存のユーザ ストアからデータを抽出するカスタム セキュリティ レルムを作成することができます。カスタム セキュリティ レルムを使用するには、weblogic.security.acl.AbstractListableRealm インタフェースまたは weblogic.security.acl.AbstractManageableRealm インタフェースの実装を作成してから、Administration Console を使用してインストールします。
注意: この節では、ファイル レルムにユーザを追加する方法について説明します。代替セキュリティ レルムを使用する場合、ユーザを定義するにはレルムで提供される管理ツールを使用する必要があります。
デプロイメントのセキュリティを考慮して、WebLogic Server では guest アカウントを無効にすることをお勧めします。
guest アカウントを無効にしても、guest というアカウントにログインできなくなるだけであり、未認証ユーザが WebLogic Server デプロイメントにアクセスすることはできます。
注意: この節では、ファイル レルムにグループを追加する方法について説明します。代替セキュリティ レルムを使用する場合、グループを定義するにはレルムで提供される管理ツールを使用する必要があります。
グループを削除するには、[Group Configuration] ウィンドウの [Remove These Groups] リスト ボックスにグループ名を入力し、[削除] をクリックします。
WebLogic Server には、ユーザ アカウントを侵入者から保護するための属性セットが用意されています。デフォルトでは、これらの属性は最高の保護レベルに設定されています。システム管理者は、すべての属性を無効にしたり、アカウントがロックされるまでの無効なログイン試行回数を増やしたり、ユーザ アカウントがロックされるまでの無効なログイン試行期間を延ばしたり、ユーザ アカウントのロック時間を変更したりできます。これらの属性を変更すると、セキュリティ レベルが低下して攻撃を受けやすくなることに注意してください。
WebLogic Server ドメインのユーザ アカウントを保護するには、次の手順に従います。
ユーザ アカウントを保護するための属性セットには、ドメインで設定するものとセキュリティ レルムで設定するものがあります。いずれかの属性セット (たとえばセキュリティ レルムの属性) を設定し、一方の値が他方の値を超えた場合、ユーザ アカウントはロックされないことに注意してください。これは、ドメインで設定するユーザ アカウントの属性がセキュリティ レルムで設定するユーザ アカウントの属性をオーバライドするからです。こうした状況を避けるには、セキュリティ レルムで設定するユーザ アカウントの属性を無効にします。
セキュリティ レルムで設定するユーザ アカウントの属性を無効にするには、次の手順に従います。
警告: セキュリティ レルムのユーザ アカウントの属性を無効にする場合は、ドメインでユーザ アカウントの属性を設定しないと、ユーザ アカウントが保護されません。
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |