WebLogic Server のセキュリティ
![]() |
![]() |
![]() |
![]() |
WebLogic Server には、WebLogic 認証プロバイダ、認可プロバイダ、資格マッピング プロバイダ、およびロール マッピング プロバイダのデフォルトのセキュリティ プロバイダ データ ストアとしての役割を持つ組み込み LDAP サーバが用意されています。以下の節では、組み込み LDAP サーバを管理する方法について説明します。
組み込み LDAP サーバには、ユーザ、グループ、グループ メンバシップ、セキュリティ ロール、セキュリティ ポリシー、および資格マップ情報が格納されます。デフォルトでは、各 WebLogic Server ドメインに、各種の情報のデフォルト値がコンフィグレーションされている組み込み LDAP サーバが 1 つあります。WebLogic の認証、認可、資格マッピング、およびロール マッピングの各プロバイダは、組み込み LDAP サーバをデータ ストアとして使用します。新しいセキュリティ レルムでこれらのプロバイダを使用する場合は、組み込み LDAP サーバのデフォルト値を変更して、環境に合わせて最適化できます。
注意 : 組み込み LDAP サーバは、50,000 ユーザ未満の環境でもっとも高いパフォーマンスを示します。これよりユーザが多い場合は、別の LDAP サーバと認証プロバイダの使用を検討してください。
詳細については、Administration Console オンライン ヘルプの「組み込み LDAP サーバのコンフィグレーション」を参照してください。
ドメインの WebLogic Server の組み込み LDAP サーバは、1 つのマスター LDAP サーバ (ドメインの管理サーバが保持する) と、レプリケートされた LDAP サーバ (ドメインの各管理対象サーバが保持する) で構成されます。管理対象サーバの組み込み LDAP サーバを使用して LDAP ディレクトリを変更した場合、その更新データがマスター LDAP サーバに送信されます。マスター LDAP サーバは、すべての変更のログを保持します。また、マスター LDAP サーバは、レプリケート対象サーバのリストと各サーバの現在の変更ステータスも保持します。マスター LDAP サーバは、各レプリケート対象サーバに適切な変更を送信して、各サーバの変更ステータスを更新します。この処理はマスター LDAP サーバで更新が行われたときに発生します。ただし、更新の回数によっては、変更が管理対象サーバにレプリケートされるのに数秒以上かかることがあります。
Administration Console を使用すると、ドメイン内のマスター LDAP サーバとレプリケートされた LDAP サーバの動作をコンフィグレーションできます。Administration Console の [ドメイン : セキュリティ : 組み込み LDAP] ページで、以下の属性を設定します。
Administration Console オンライン ヘルプの「組み込み LDAP サーバのコンフィグレーション」を参照してください。
注意 : コンフィグレーション済みのセキュリティ プロバイダを WebLogic Administration Console で削除および修正する際には、組み込み LDAP サーバの手動クリーンアップが必要になることがあります。外部 LDAP ブラウザを使用して、不要な情報を削除します。
LDAP ブラウザで組み込み LDAP サーバの内容を表示するには、次の手順に従います。
WebLogic Administration Console または LDAP ブラウザでは、組み込み LDAP サーバからデータをエクスポートしてインポートできます。Administration Console でデータをエクスポートおよびインポートするには、各セキュリティ プロバイダの [移行] ページを使用します。Administration Console オンライン ヘルプの「セキュリティ プロバイダからのデータのエクスポート」と「セキュリティ プロバイダへのデータのインポート」を参照してください。この節では、LDAP ブラウザを使用して、組み込み LDAP サーバに格納されているデータをエクスポートおよびインポートする方法について説明します。表 9-1 に、組み込み LDAP サーバの階層におけるデータの格納場所を示します。
LDAP ブラウザ/エディタを使用して組み込み LDAP サーバからセキュリティ データをエクスポートするには、次の手順に従います。
LDAP ブラウザ/エディタを使用して組み込み 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 つずつ含まれています。アクセス制御ルールは以下の要素で構成されています。
コード リスト 9-1 に、アクセス制御ファイルのサンプルを示します。
コード リスト 9-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 サーバ上でアクセスまたは変更されるエントリが、アクセス制御ルールの場所に一致しないか下位ディレクトリに存在しない場合、指定されたアクセス制御ルールはそれ以上評価されません。
ディレクトリ内のエントリが、衝突するアクセス制御ルールの対象となっている場合 (たとえば、あるルールが「エントリ」のルールで、別のルールが「サブツリー」のルールである場合)、「エントリ」のルールが「サブツリー」のルールよりも優先されます。
アクセス権はオブジェクト全体またはオブジェクトの属性に適用されます。アクセスは付与または拒否されます。アクセス制御ルールを作成または更新するときに、grant
または deny
のアクションを使用できます。
LDAP のアクセス権はそれぞれが分離しています。ある権限に別の権限が含まれることはありません。権限では実行できる LDAP 操作のタイプを指定します。
以下のパーミッションは属性を呼び出すアクションに適用されます。
m
パーミッションは、オブジェクトを作成するときにオブジェクトに配置されるすべての属性に対して必要です。変更操作で w
および o
パーミッションが使用されるのと同様に、m
パーミッションは追加操作で使用されます。w
および o
パーミッションは追加操作と関係がなく、m
パーミッションは変更操作と関係がありません。新しいオブジェクトはまだ存在していないため、オブジェクトの作成に必要な a
および m
パーミッションは、新しいオブジェクトの親に付与されている必要があります。この要件は、変更対象のオブジェクトに付与する必要のある w
および o
パーミッションとは異なります。エントリに新しい子を追加する際に必要なパーミッションと、同じエントリの既存の子を変更する際に必要なパーミッションが衝突しないように、m
パーミッションは w
および o
パーミッションとは別個で分離したものになっています。変更操作で値を置き換えるには、ユーザは w
パーミッションと o
パーミッションの両方を持つ必要があります。
以下のパーミッションは LDAP エントリ全体に適用されます。
アクセス制御ルールが適用される属性タイプは、必要な場合に表示されます。以下のキーワードが使用されます。
[entry]
- パーミッションがオブジェクト全体に適用されることを示します。オブジェクトの削除や子オブジェクトの追加などのアクションを意味します。 [all]
- パーミッションがエントリのすべての属性に適用されることを示します。ACL 内でキーワード [all]
と別の属性の両方が指定されている場合、属性に対する限定性の高いパーミッションが、[all]
キーワードで指定される限定性の低いパーミッションをオーバーライドします。
アクセス制御ルールは、さまざまなサブジェクト タイプと関連付けることができます。アクセス制御ルールのサブジェクトによって、現在接続しているセッションにアクセス制御ルールが適用されるかどうかが決まります。
AuthzID
- サブジェクト定義の一部として指定できる単一のユーザに適用されます。ユーザの ID は、LDAP ディレクトリ内で通常 DN として定義されます。Group
- 以下のいずれかのオブジェクト クラスで指定されるユーザのグループに適用されます。 Subtree
- LDAP ディレクトリ ツリー内のサブジェクトとすべての下位エントリの一部として指定される DN に適用されます。IP Address
- 特定のインターネット アドレスに適用されます。このサブジェクト タイプは、すべてのアクセスがプロキシ サーバまたは他のサーバを経由しなければならない場合に便利です。特定のホストにのみ適用され、範囲やサブネットには適用されません。Public
- 認証されるかどうかにかかわらず、ディレクトリに接続するすべての対象に適用されます。This
- アクセスされるエントリの DN に一致する DN を持つユーザに適用されます。エントリ内の情報に対するクライアント アクセスを付与または拒否するかどうかの決定は、アクセス制御ルールや保護されるエントリに関連するさまざまな要因に基づいて行われます。意思決定プロセスの過程には、以下のような指針となる原則があります。
IP Address
サブジェクトに基づくルールが最優先され、その次に、特定の AuthzID
または This
サブジェクトに適用されるルールが続きます。次に優先されるのは、Group
サブジェクトに適用されるルールです。優先順位が最も低いのは、Subtree
および Public
サブジェクトに適用されるルールです。
![]() ![]() |
![]() |
![]() |