WebLogic Security の管理
組み込み LDAP サーバの管理
組み込み LDAP サーバは、WebLogic 認証プロバイダ、認可プロバイダ、ロール マッピング プロバイダ、および資格マッピング プロバイダのデフォルトのセキュリティ プロバイダ データベースです。以下の節では、組み込み LDAP サーバを管理する方法について説明します。
組み込み LDAP サーバのコンフィグレーション
組み込み LDAP サーバには、ユーザ、グループ、グループ メンバシップ、セキュリティ ロール、セキュリティ ポリシー、および資格マップ情報が格納されます。デフォルトでは、WebLogic Server ドメインごとに、各属性のデフォルト値がコンフィグレーションされた組み込み LDAP サーバがあります。WebLogic 認証プロバイダ、認可プロバイダ、資格マッピング プロバイダ、およびロール マッピング プロバイダは、組み込み LDAP サーバをデータベースとして使用します。新しいセキュリティ レルムでこれらのプロバイダを使用する場合は、組み込み LDAP サーバのデフォルト値を変更して、環境に合わせて最適化できます。
注意 :組み込み LDAP サーバは、50,000 ユーザ未満の環境でもっとも高いパフォーマンスを示します。
組み込み LDAP サーバをコンフィグレーションするには、次の手順に従います。
ドメイン ノード (Examples など) を展開します。
セキュリティ設定の [コンフィグレーション|組み込み LDAP] タブを選択します。
[組み込み LDAP] タブで属性を設定します。次の表では、[組み込み LDAP] タブの各属性について説明します。
表 7-1 [組み込み LDAP] タブの属性
LDAP 属性
|
説明
|
[資格]
|
組み込み LDAP サーバへの接続に使用される資格 (通常はパスワード)。このパスワードを設定しなかった場合、WebLogic Server は起動時にパスワードを生成して属性を初期化し、コンフィグレーションを config.xml ファイルに保存する。外部 LDAP ブラウザと組み込み LDAP の管理者アカウント (cn=Admin ) を使用して組み込み LDAP サーバに接続する場合は、この属性を生成した値から変更する。
|
[バックアップ時間 (時間)]
|
組み込み LDAP サーバのデータ ファイルをバックアップする時刻 (時)。この属性は [バックアップ時間 (分)] 属性と組み合わせて使用され、組み込み LDAP サーバのデータ ファイルをバックアップする時刻を決定する。指定された時刻に、WebLogic Server は組み込み LDAP サーバへの書き込みを中断し、データ ファイルを ldap/backup ディレクトリの zip ファイルにバックアップしてから、書き込みを再開する。デフォルトでは 23。
|
[バックアップ時間 (分)]
|
組み込み LDAP サーバのデータ ファイルをバックアップする時刻 (分)。この属性は [バックアップ時間 (時間)] 属性と組み合わせて使用され、組み込み LDAP サーバのデータ ファイルをバックアップする時刻を決定する。デフォルトでは 5 分。
|
[バックアップ コピー数]
|
組み込み LDAP サーバのデータ ファイルのバックアップ コピー数。この値は、ldap/backup ディレクトリ内の zip ファイルの数を制限する。デフォルトでは 7。
|
[キャッシュを有効化]
|
組み込み LDAP サーバでキャッシュを使用するかどうかを指定する。このキャッシュは、管理対象サーバが管理サーバ上で動作するマスター組み込み LDAP サーバの読み取りまたは書き込みを行うときに使用される。
|
[キャッシュ サイズ]
|
組み込み LDAP サーバで使用されるキャッシュのサイズ (単位は KB)。デフォルトは 32 KB。
|
[キャッシュ TTL]
|
キャッシュの存続期間 (TTL) の秒数。デフォルトでは 60 秒。
|
[起動時にレプリカを更新]
|
管理対象サーバがレプリケートされたデータを起動時にすべてリフレッシュするかどうかを指定する。この属性は、管理対象サーバがアクティブでない間に大量の変更を行ったため、それらの変更を管理サーバから管理対象サーバに送らずにレプリカ全体をダウンロードしたいときに役立つ。
この属性を使用すると、新しいシステム パスワードをドメイン内の管理サーバおよび管理対象サーバに伝播できる。
デフォルトは false。
|
[マスターを優先]
|
ローカルのレプリケート対象の組み込み LDAP サーバではなく、常に (管理サーバ上で動作する) マスター LDAP サーバに接続するよう指定する。その場合、管理対象サーバは、管理サーバの情報のレプリカを格納するローカルの組み込み LDAP サーバに接続する代わりに、管理サーバの組み込み LDAP サーバからセキュリティ データを取得する。
|
[Anonymous Bind Allowed]
|
組み込み LDAP サーバへの匿名アクセスを許可するかどうかを指定する。セキュリティに脆弱性が生じるおそれがあるため、デフォルトでは匿名アドレスは無効。
|
組み込み LDAP サーバのレプリケーション
組み込み LDAP サーバを WebLogic Server ドメインで使用する場合、更新はマスター LDAP サーバに送信されます。マスター LDAP サーバは、すべての変更のログを保持します。また、マスター LDAP サーバは、レプリケート対象サーバのリストと各サーバの現在の変更ステータスも保持します。マスター LDAP サーバは、各レプリケート対象サーバに適切な変更を送信して、各サーバの変更ステータスを更新します。この処理はマスター LDAP サーバで更新が行われたときに発生します。ただし、更新の回数によっては、変更が管理対象サーバにレプリケートされるのに数秒以上かかることがあります。マスター LDAP サーバは、管理サーバ上の組み込み LDAP サーバです。レプリケート対象サーバは、WebLogic Server ドメイン内のすべての管理対象サーバです。
注意 :コンフィグレーション済みのセキュリティ プロバイダを WebLogic Server Administration Console で削除および修正するには、組み込み LDAP サーバの手動クリーンアップが必要となる場合があります。外部 LDAP ブラウザを使用して、不要な情報を削除します。
組み込み LDAP サーバのバックアップのコンフィグレーション
組み込み LDAP サーバのバックアップをコンフィグレーションするには、次の手順に従います。
ドメイン ノード (Examples など) を展開します。
セキュリティ設定の [コンフィグレーション|組み込み LDAP] タブを選択します。
[組み込み LDAP] タブで、[バックアップ時間 (時間)]、[バックアップ時間 (分)]、および [バックアップ コピー数] 属性を設定します。
LDAP ブラウザからの組み込み LDAP サーバの内容の表示
LDAP ブラウザで組み込み LDAP サーバの内容を表示するには、次の手順に従います。
次の場所から外部 LDAP ブラウザをダウンロードします。
http:/www.iit.edu/~gawojar/ldap/
内容を表示するには、組み込み LDAP の資格を変更します。
ドメイン ノード (Examples など) を展開します。
セキュリティ設定の [コンフィグレーション|組み込み LDAP] タブを選択します。
[資格] 属性を、生成された値から LDAP ブラウザで使用するパスワードに変更します。表 7-1 を参照してください。
コマンド プロンプトに次のコマンドを入力して、LDAP ブラウザを起動します。
lbe.sh
LDAP ブラウザで新しい接続をコンフィグレーションします。
[host] フィールドを localhost
に設定します。
[port] フィールドを 7001
(SSL を使用する場合は 7002
) に設定します。
[Base DN] フィールドを dc=mydomain
に設定します。mydomain
は使用する WebLogic Server ドメインの名前です。
[Anonymous Bind] オプションのチェックははずします。
[User DN] フィールドを cn=Admin
に設定します。
[Password] フィールドに手順 2c で指定したパスワードを設定します。
LDAP ブラウザを使用して、組み込み LDAP サーバの階層を移動します。
組み込み LDAP サーバの情報のエクスポートおよびインポート
このリリースの WebLogic Server では、各セキュリティ プロバイダの [移行] タブを使用して組み込み LDAP サーバとの間でデータをインポートまたはエクスポートできます。必要に応じて、LDAP ブラウザを使用して、組み込み LDAP サーバに格納されたデータをエクスポートおよびインポートすることもできます。表 7-2 に、組み込み LDAP サーバの階層におけるデータの格納場所を示します。
表 7-2 組み込み LDAP サーバ内のセキュリティ データの場所
セキュリティ データ
|
組み込み LDAP サーバ DN
|
ユーザ
|
ou=people,ou= myrealm ,dc= mydomain
|
グループ
|
ou=groups,ou= myrealm ,dc= mydomain
|
セキュリティ ロール
|
ou=ERole,ou= myrealm ,dc= mydomain
|
セキュリティ ポリシー
|
ou=EResource,ou= myrealm ,dc= mydomain
|
組み込み LDAP サーバからセキュリティ データをエクスポートするには、次の手順に従います。
コマンド プロンプトに次のコマンドを入力して、LDAP ブラウザを起動します。
lbe.sh
エクスポートするデータを指定します (たとえば、ユーザをエクスポートするには ou=people,ou=
myrealm
,dc=
mydomain
と指定します)。
[LDIF|Export] オプションを選択します。
[Export all children] を選択します。
データのエクスポート先ファイルの名前を指定します。
組み込み LDAP サーバからセキュリティ データをインポートするには、次の手順に従います。
コマンド プロンプトに次のコマンドを入力して、LDAP ブラウザを起動します。
lbe.sh
インポートするデータを指定します (たとえば、ユーザをインポートするには ou=people,ou=
myrealm
,dc=
mydomain
と指定します)。
[LDIF|Import] オプションを選択します。
データをインポートするファイルの名前を指定します。
LDAP アクセス制御の構文
組み込み LDAP サーバは IETF の「LDAP Access Control Model for LDAPv3」をサポートしています。この節では、そのアクセス制御を組み込み LDAP サーバの内部に実装する方法について説明します。これらのルールは、標準で想定されているようにディレクトリ内のエントリに直接適用することも、アクセス制御ファイル (acls.prop
) を編集してコンフィグレーションおよび管理することもできます。
注意 :組み込み LDAP サーバのデフォルトの動作は、WebLogic Server の Admin アカウントからのアクセスだけを許可し、すベての匿名アクセスをブロックしています。WebLogic セキュリティ プロバイダは、Admin アカウントのみを使用して組み込み LDAP サーバにアクセスします。外部 LDAP ブラウザから組み込み LDAP サーバにアクセスする予定がない場合、または Admin アカウントのみを使用する予定の場合は acls.prop
ファイルを編集する必要はありません。この節の手順は必ずしも行う必要はありません。
アクセス制御ファイル
組み込み LDAP サーバが保持するアクセス制御ファイル (acls.prop
) には、LDAP ディレクトリ全体のアクセス制御リスト (ACL) の完全なリストが含まれています。アクセス制御ファイルの各行には、アクセス制御ルールが 1 つずつ含まれています。アクセス制御ルールは以下の要素で構成されています。
ルールを適用する LDAP ディレクトリ内の場所
その場所の内部でルールを適用する範囲
アクセス権 (付与または拒否)
パーミッション (付与または拒否)
ルールを適用する属性
アクセスを付与または拒否するサブジェクト
コード リスト 7-1 に、サンプルのアクセス制御ファイルを示します。
コード リスト 7-1サンプル acl.props ファイル
[root]|entry#grant:r,b,t#[all]#public
ou=Employees,dc=octetstring,dc=com|subtree#grant:r,c#[all]#public:
ou=Employees,dc=octetstring,dc=com|subtree#grant:b,t#[entry]#public:
ou=Employees,dc=octetstring,dc=com|subtree#deny:r,c#userpassword#public:
ou=Employees,dc=octetstring,dc=com|subtree#grant:r#userpassword#this:
ou=Employees,dc=octetstring,dc=com|subtree#grant:w,o#userpassword,title
,
description,
postaladdress,telephonenumber#this:
cn=schema|entry#grant:r#[all]#public:
アクセス制御の場所
各アクセス制御ルールは LDAP ディレクトリ内の特定の場所に適用されます。場所は通常は識別名 (DN) ですが、アクセス制御ルールをディレクトリ全体に適用する場合は、acls.prop
ファイルで特定の場所の [root]
を指定することができます。
LDAP サーバ上でアクセスまたは変更されるエントリが、アクセス制御ルールの場所に一致しないか下位ディレクトリに存在しない場合、指定されたアクセス制御ルールはそれ以上評価されません。
アクセス制御のスコープ
以下のアクセス制御のスコープが定義されています。
エントリ - エントリのスコープを持つ ACL は、LDAP ディレクトリ内のエントリが、アクセス制御ルールの場所と同じ DN を共有する場合にのみ評価されます。このようなルールは、単一のエントリに、同列または下位のエントリよりも重要な情報が含まれる場合に有用です。
サブツリー - サブツリーのスコープは、LDAP ディレクトリ内のエントリが、このアクセス制御の場所と同じ、またはこのアクセス制御の場所で終わる場合に評価されます。このスコープでは、その場所のエントリとすべての下位エントリが保護されます。
ディレクトリ内のエントリが、衝突するアクセス制御ルールの対象となっている場合 (たとえば、あるルールが「エントリ」のルールで、別のルールが「サブツリー」のルールである場合)、「エントリ」のルールが「サブツリー」のルールよりも優先されます。
アクセス権
アクセス権はオブジェクト全体またはオブジェクトの属性に適用されます。アクセスは付与または拒否されます。アクセス制御ルールを作成または更新するときに、grant
または deny
のアクションを使用できます。
LDAP のアクセス権はそれぞれが分離しています。ある権限に別の権限が含まれることはありません。権限では実行できる LDAP 操作のタイプを指定します。
属性のパーミッション
以下のパーミッションは属性を呼び出すアクションに適用されます。
表 7-3 属性のパーミッション
パーミッション
|
説明
|
r Read
|
属性を読み込む。付与される場合、読み込みまたは検索操作で、属性と値を返すことが許可される。
|
w Write
|
属性を変更または追加する。付与される場合、変更操作で属性と値の追加が許可される。
|
o Obliterate
|
属性を変更または削除する。付与される場合、変更操作で属性と値の削除が許可される。
|
s Search
|
指定された属性を持つエントリを検索する。付与される場合、属性と値が検索操作の対象となることが許可される。
|
c Compare
|
属性値を比較する。付与される場合、属性と値が比較操作の対象となることが許可される。
|
m Make
|
このエントリの下の新しい LDAP エントリに属性を作成する。
|
m
パーミッションは、オブジェクトを作成するときにオブジェクトに配置されるすべての属性に対して必要です。変更操作で w
および o
パーミッションが使用されるのと同様に、m
パーミッションは追加操作で使用されます。w
および o
パーミッションは追加操作と関係がなく、m
パーミッションは変更操作と関係がありません。新しいオブジェクトはまだ存在していないため、オブジェクトの作成に必要な a
および m
パーミッションは、新しいオブジェクトの親に付与されている必要があります。この要件は、変更対象のオブジェクトに付与する必要のある w
および o
パーミッションとは異なります。エントリに新しい子を追加する際に必要なパーミッションと、同じエントリの既存の子を変更する際に必要なパーミッションが衝突しないように、m
パーミッションは w
および o
パーミッションとは別個で分離したものになっています。変更操作で値を置き換えるには、ユーザは w
パーミッションと o
パーミッションの両方を持つ必要があります。
エントリのパーミッション
以下のパーミッションは LDAP エントリ全体に適用されます。
表 7-4 エントリのパーミッション
パーミッション
|
説明
|
a Add
|
この LDAP エントリの下にエントリを追加する。付与される場合、DIT サブジェクト内にエントリを作成して、作成時に新しいエントリに配置されるすべての属性と値を制御することが許可される。エントリを追加するには、少なくとも必須の属性を追加するパーミッションも付与されなければならない。
|
d Delete
|
このエントリを削除する。付与される場合、エントリ内の属性の制御に関係なく、DIT からエントリを削除することが許可される。
|
e Export
|
エントリとすべての下位エントリを新しい場所にエクスポートする。
付与される場合は、エントリとその下位エントリ (存在する場合) のエクスポートが許可される。つまり、エクスポート先に適したパーミッションを付与するという前提で、エントリを現在の場所から削除して新しい場所に配置する。
最後の RDN を変更する場合は、現在の場所で Rename パーミッションも必要になる。
エントリまたはその下位エントリをエクスポートする際に、エントリに含まれる属性 (RDN 属性を含む) に必須のパーミッションはない。操作によって新しい属性値が追加されたり、RDN の変更の結果として属性値が削除されたりする場合でも、このことが当てはまる。
|
i Import
|
エントリと下位エントリを指定された場所からインポートする。
付与される場合は、エントリとその下位エントリ (存在する場合) のインポートが許可される。つまり、新しい場所に適したパーミッションが付与される場合、エントリを他の場所から削除して指定された場所に配置する。
エントリまたはその下位エントリをインポートする際に、エントリに含まれる属性 (RDN 属性を含む) に必須のパーミッションはない。操作によって新しい属性値が追加されたり、RDN の変更の結果として属性値が削除されたりする場合でも、このことが当てはまる。
|
n RenameDN
|
LDAP ディレクトリの DN を変更する。エントリの名前を新しい RDN に変更する (下位エントリの DN も結果として変更される) 場合は、Rename パーミッションを付与する必要がある。上位のエントリの名前を変更しない場合、付与は十分である。
エントリの名前を変更する際に、エントリに含まれる属性 (RDN 属性を含む) に必須のパーミッションはない。操作によって新しい属性値が追加されたり、RDN の変更の結果として属性値が削除されたりする場合でも、このことが当てはまる。
|
b BrowseDN
|
エントリの DN を参照する。付与される場合、ディレクトリ操作を使用してエントリにアクセスすることが許可される。この操作では、エントリの名前は明示的に提供されない。
|
t ReturnDN
|
操作の結果にエントリの DN を公開することが許可される。付与される場合、操作の結果にエントリの識別名を公開することが許可される。
|
属性タイプ
アクセス制御ルールが適用される属性タイプは、必要な場合に表示されます。以下のキーワードが使用されます。
[entry]
- パーミッションがオブジェクト全体に適用されることを示します。オブジェクトの削除や子オブジェクトの追加などのアクションを意味します。
[all]
- パーミッションがエントリのすべての属性に適用されることを示します。
ACL 内でキーワード [all]
と別の属性の両方が指定されている場合、属性に対する限定性の高いパーミッションが、[all]
キーワードで指定される限定性の低いパーミッションをオーバーライドします。
サブジェクト タイプ
アクセス制御ルールは、さまざまなサブジェクト タイプと関連付けることができます。アクセス制御ルールのサブジェクトによって、現在接続しているセッションにアクセス制御ルールが適用されるかどうかが決まります。
以下のサブジェクト タイプが定義されます。
authzID
- サブジェクト定義の一部として指定できる単一のユーザに適用されます。ユーザの ID は、通常 LDAP ディレクトリ内で DN として定義されます。
Group
- 以下のいずれかのオブジェクト クラスで指定されるユーザのグループに適用されます。
groupOfUniqueNames
groupOfNames
groupOfUniqueURLs
1 番目と 2 番目のタイプのグループにはユーザのリストが含まれます。3 番目のタイプでは、定義された基準に基づいてユーザは自動的にグループに分類されます。
Subtree
- LDAP ディレクトリ ツリー内のサブジェクトとすべての下位エントリの一部として指定される DN に適用されます。
IP Address
- 特定のインターネット アドレスに適用されます。このサブジェクト タイプは、すべてのアクセスがプロキシ サーバまたは他のサーバを経由しなければならない場合に便利です。特定のホストにのみ適用され、範囲やサブネットには適用されません。
Public
- 認証されるかどうかにかかわらず、ディレクトリに接続するすべての対象に適用されます。
This
- アクセスされるエントリの DN に一致する DN を持つユーザに適用されます。
評価ルールの付与または拒否
エントリ内の情報に対するクライアント アクセスを付与または拒否するかどうかの決定は、アクセス制御ルールや保護されるエントリに関連するさまざまな要因に基づいて行われます。意思決定プロセスの過程には、指針となる原則があります。
限定性の高いルールが限定性の低いルールをオーバーライドする (たとえば、ACL 内の個々のユーザ エントリは、グループ エントリに優先する)。
ルールの限定性に関係なく衝突が解消されない場合は、ルールのサブジェクトによって適用すべきルールが決まる。IP Address
サブジェクトに基づくルールが最優先され、その次は、特定の AuthzID
または This
サブジェクトに適用されるルールが続く。次に優先されるのは、Group
サブジェクトに適用されるルール。優先順位が最も低いのは、Subtree
および Public
サブジェクトに適用されるルールである。
ACL に衝突する値がある場合、拒否の方が付与よりも優先される。
アクセス制御情報がない場合は、デフォルトで拒否される。また、エントリのスコープはサブツリーのスコープに優先する。