2. Directory Serverのインスタンスと接尾辞
7. Directory Serverのパスワード・ポリシー
8. Directory Serverのバックアップとリストア
9. Directory Serverのグループ、ロールおよびCoS
16. Directory Proxy Serverのツール
17. Directory Proxy Serverのインスタンス
19. Directory Proxy Serverの証明書
20. Directory Proxy Serverのロード・バランシングとクライアント・アフィニティ
22. Directory Proxy Serverによる仮想化
24. Directory Proxy ServerとバックエンドLDAPサーバーの接続
25. クライアントとDirectory Proxy Serverの接続
26. Directory Proxy Serverのクライアント認証
27. Directory Proxy Serverのロギング
28. Directory Proxy Serverの監視とアラート
第3部 Directory Service Control Centerの管理
エントリの管理に最適な方法は、状況によって異なります。
管理作業にはほとんどDSCCを使用しており、少数のエントリのみを検索または変更する場合は、DSCCを使用します。DSCCの詳細は、「Directory Service Control Centerのインタフェース」を参照してください。
大量のエントリを検索または変更する場合は、コマンドライン・ユーティリティldapmodifyおよびldapdeleteを使用します。
DSCCでは、暗号化されていない読取り可能なすべてのエントリの属性を表示し、書込み可能な属性を編集できます。また、属性を追加および削除したり、複数値属性を設定したり、エントリのオブジェクト・クラスを管理することもできます。DSCCを使用してエントリを管理する方法の詳細は、DSCCのオンライン・ヘルプを参照してください。DSCC全般の詳細は、「Directory Service Control Centerのインタフェース」を参照してください。
DSCCを使用して、Directory Serverインスタンスのエントリ管理タブ・ページでディレクトリ・エントリを直接追加または編集できます。エントリを追加および編集するためのウィザードを起動するボタンがあります。
次の手順では、エントリを拡張して、既存のエントリにユーザー定義属性を追加する方法を示します。たとえば、新しいアプリケーションでディレクトリにアクセスするには、各エントリに追加情報を格納する必要があり、テスト用にもエントリをいくつか作成する必要があります。
ディレクトリ・インスタンスへのリンクをクリックしてから、「スキーマ」をクリックして、ユーザー定義オブジェクト・クラスまでスクロールし、「追加」ボタンを押してウィザードを開きます。
または、構成ファイルを編集して、LDAPでディレクトリ・スキーマを更新することもできます。詳細は、第11章「Directory Serverのスキーマ」を参照してください。
LDAPでは、オブジェクト・クラス属性値をエントリに追加することでエントリが持つ属性のリストを拡張するため、オブジェクト・クラスを作成する必要があります。
フォームベース・エディタには、編集可能なすべての属性が表示されますが、エントリを拡張するために追加できるオブジェクト・クラスは表示されません。
たとえば、example-attribute属性をLDIFに追加できるようにするexample-objectclassでスキーマを拡張する場合は次のとおりです。
dn: uid=bjensen,ou=People,dc=example,dc=com cn: Babs Jensen mail: bjensen@example.com objectclass: top objectclass: person objectclass: organizationalPerson objectclass: inetOrgPerson objectclass: example-objectclass sn: Jensen uid: bjensen example-attribute: Extended entry
テキスト表示エディタには、組込みのチェック・ルーチンがあるので、編集内容が有効かどうかを1回のクリックでチェックできます。編集内容がすべて想定どおりであれば、変更を適用します。
ldapmodifyおよびldapdeleteコマンドライン・ユーティリティは、ディレクトリの内容を追加、編集および削除するためのすべての機能を提供します。これらのユーティリティを使用して、サーバーの構成エントリとユーザー・エントリのデータを管理できます。このユーティリティを使用して、1つ以上のディレクトリを一括管理するスクリプトを記述することもできます。
ldapmodifyおよびldapdeleteコマンドは、本書全般の手順で使用されます。次の各項では、それらの手順の実行に必要な基本的な操作について説明します。ldapmodifyおよびldapdeleteコマンドの詳細は、Oracle Directory Server Enterprise Editionリファレンスを参照してください。
コマンドライン・ユーティリティの入力は、常にLDIFで行います。これはコマンドラインから直接指定することも、入力ファイルで指定することもできます。次の項では、LDIFの入力について説明し、それ以降の各項では、各種の変更で使用されるLDIF入力について説明します。
LDIF入力の正しいフォーマットの詳細は、Oracle Directory Server Enterprise EditionリファレンスのLDIF入力の指定のガイドラインに関する項を参照してください。
次の各項では、それらの基本的な操作について説明します。
このタスクの実行には、DSCCが使用できます。詳細は、「Directory Service Control Centerのインタフェース」およびDSCCのオンライン・ヘルプを参照してください。
注意: 必ずDirectory Server Enterprise Editionソフトウェアに付属のldapmodifyユーティリティを使用してください。
ldapmodifyの-aオプションを使用して1つ以上のエントリをディレクトリに追加できます。次の例では、ユーザーを格納する構造化エントリを作成して、ユーザーのエントリを作成します。
$ ldapmodify -a -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w - Enter bind password: dn: ou=People,dc=example,dc=com objectclass: top objectclass: organizationalUnit ou: People description: Container for user entries dn: uid=bjensen,ou=People,dc=example,dc=com objectclass: top objectclass: person objectclass: organizationalPerson objectclass: inetorgPerson uid: bjensen givenName: Barbara sn: Jensen cn: Babs Jensen telephoneNumber: (408) 555-3922 facsimileTelephoneNumber: (408) 555-4000 mail: bjensen@example.com userPassword: secret
-Dおよび-wオプションにより、これらのエントリを作成する権限を持つユーザーのバインドDNとパスワードをそれぞれ指定します。-aオプションは、LDIFのすべてのエントリが追加されることを示します。各エントリはそのDNとその属性値でリストされ、各エントリ間に空行が入ります。ldapmodifyユーティリティは、各エントリが入力されるとそのエントリを作成し、エラーがあるとそれを報告します。
エントリのLDIFには、慣例により、次の属性がリストされます。
エントリのDN。
オブジェクト・クラスのリスト。
ネーミング属性。これは、DNに使用される属性であり、必ずしも必要な属性ではありません。
すべてのオブジェクト・クラスに必要な属性のリスト。
含める必要がある、許可される任意の属性。
userPassword属性の値を入力する場合、クリアテキスト版のパスワードを入力します。サーバーではこの値を暗号化し、暗号化された値のみを保存します。LDIFファイルに表示されるクリアテキストのパスワードを保護するため、読取り権限を制限してください。
また、コマンドラインで-aオプションが不要なLDIFの別の形式を使用することもできます。この形式の利点は、次の例に示すように、エントリの追加文とエントリの変更文を組み合せられるということです。
$ ldapmodify -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w - Enter bind password: dn: ou=People,dc=example,dc=com changetype: add objectclass: top objectclass: organizationalUnit ou: People description: Container for user entries dn: uid=bjensen,ou=People,dc=example,dc=com changetype: add objectclass: top objectclass: person objectclass: organizationalPerson objectclass: inetorgPerson uid: bjensen givenName: Barbara sn: Jensen cn: Barbara Jensen telephoneNumber: (408) 555-3922 facsimileTelephoneNumber: (408) 555-4000 mail: bjensen@example.com userPassword: secret
changetype: addキーワードは、特定のDNを持つエントリが後続の属性をすべて含めて作成されることを意味します。その他すべてのオプションとLDIFの表記は、この項の前半で述べたものと同様です。
両方の例とも、-f filenameオプションを使用して、端末入力からではなく、ファイルからLDIFを読み込むことができます。-aオプションの使用に応じて、LDIFファイルには端末入力と同様のフォーマットが含まれる必要があります。
このタスクの実行には、DSCCが使用できます。詳細は、「Directory Service Control Centerのインタフェース」およびDSCCのオンライン・ヘルプを参照してください。
注意: 必ずDirectory Server Enterprise Editionソフトウェアに付属のldapmodifyユーティリティを使用してください。
changetype: modifyキーワードを使用して、既存のエントリの属性とその値を追加、置換、または削除します。changetype: modifyを指定する場合、エントリの変更方法を示す1つ以上の変更操作を指定する必要があります。次の例に、使用可能な3つのLDIF変更操作を示します。
dn: entryDN changetype: modify add: attribute attribute: value... - replace: attribute attribute: newValue... - delete: attribute [attribute: value] ...
行の中にハイフン(-)を使用して、同じエントリ上の操作を区切ります。また、空行を使用して、様々なエントリの操作グループを区切ります。それぞれの操作にいくつかのattribute: valueのペアを指定することもできます。
このタスクの実行には、DSCCを使用できません。次の手順の説明に従って、コマンドラインを使用してください。
次の例では、同じadd LDIF構文を使用して、既存の複数値属性およびまだ存在していない属性に値を追加する方法を示します。
$ ldapmodify -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w - Enter bind password: dn: uid=bjensen,ou=People,dc=example,dc=com changetype: modify add: cn cn: Babs Jensen - add: mobile mobile: (408) 555-7844
次のいずれかの状況では、この操作は失敗し、サーバーがエラーを返す可能性があります。
属性に特定の値がすでに存在している。
値が属性に定義されている構文に従っていない。
属性タイプがエントリのオブジェクト・クラスで必要ない、または許可されていない。
属性タイプが複数値ではなく、その値がすでに存在している。
このタスクの実行には、DSCCが使用できます。詳細は、「Directory Service Control Centerのインタフェース」およびDSCCのオンライン・ヘルプを参照してください。
attribute;binaryサブタイプは、実際の構文にかかわらず、属性値がLDAP上でバイナリ・データとして転送される必要があることを示します。このサブタイプは、userCertificateなどのLDAP文字列表現を持たない複雑な構文用に設計されています。バイナリ・サブタイプは、この目的以外に使用しないでください。
ldapmodifyコマンドで使用する場合、任意のLDIF文で適切なサブタイプを属性名に追加できます。
バイナリ値を入力するには、LDIFテキストに直接入力するか、別のファイルから読み込みます。次の例で、ファイルから読み込むためのLDIF構文を示します。
$ ldapmodify -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w - Enter bind password: version: 1 dn: uid=bjensen,ou=People,dc=example,dc=com changetype: modify add: userCertificate;binary userCertificate;binary:< file:///local/cert-file
:<構文を使用してファイル名を指定するには、LDIF文をversion: 1という行で開始する必要があります。ldapmodifyでこの文を処理する場合、特定のファイルの内容全体から読み込まれる値に属性が設定されます。
デフォルトでは、検索で;binaryオプションを使用すると、バイナリ属性を返します。compat-flagをnorfc4522に設定して、rfc4522コンプライアンスを無効にします。
このタスクの実行には、DSCCが使用できます。詳細は、「Directory Service Control Centerのインタフェース」およびDSCCのオンライン・ヘルプを参照してください。
属性の言語とふりがなのサブタイプは、ローカライズされた値を指定します。属性の言語サブタイプを指定すると、そのサブタイプは次のように属性名に追加されます。
attribute;lang-CC
ここで、attributeは既存の属性タイプを表し、ccは言語を表す2文字の国コードを表します。必要に応じて、言語サブタイプにふりがなのサブタイプを追加し、ローカライズされた値の発音表記を指定できます。その場合、属性名は次のようになります。
attribute;lang-CC;phonetic
サブタイプを持つ属性上で操作を実行するには、そのタイプを明示的に一致させる必要があります。たとえば、lang-fr言語サブタイプを持つ属性値を変更する場合、変更操作で次のようにlang-frを含める必要があります。
$ ldapmodify -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w - Enter bind password: dn: uid=bjensen,ou=People,dc=example,dc=com changetype: modify add: homePostalAddress;lang-fr homePostalAddress;lang-fr: 34, rue de la Paix
注意: 属性値にASCII以外の文字がある場合、UTF-8エンコードする必要があります。
このタスクの実行には、DSCCが使用できます。詳細は、「Directory Service Control Centerのインタフェース」およびDSCCのオンライン・ヘルプを参照してください。
次の例は、LDIFでreplace構文を使用して属性値を変更する方法を示します。
$ ldapmodify -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w - Enter bind password: dn: uid=bjensen,ou=People,dc=example,dc=com changetype: modify replace: sn sn: Morris - replace: cn cn: Barbara Morris cn: Babs Morris
指定された属性の現在の値はすべて削除され、指定されたすべての値が追加されます。
属性値を変更したら、ldapsearchコマンドを使用して、変更を検証できます。
属性値を変更する場合、誤って値の最後に空白を入れないでください。後ろに空白があると、それも属性値の一部としてサーバーに保存され、予期しない値が格納されることになります。
DSCCまたはldapsearchコマンドを使用して変更を検証する場合、値にプレーン・テキストが表示される場合と別の予期しない値が表示される場合があります。これは、使用するDirectory Serverクライアントによって異なります。
このタスクの実行には、DSCCが使用できます。詳細は、「Directory Service Control Centerのインタフェース」およびDSCCのオンライン・ヘルプを参照してください。
次の例は、属性全体を削除する方法および複数値属性の値を1つのみ削除する方法について説明します。
$ ldapmodify -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w - Enter bind password: dn: uid=bjensen,ou=People,dc=example,dc=com changetype: modify delete: facsimileTelephoneNumber - delete: cn cn: Babs Morris
attribute: valueペアを指定せずにdelete構文を使用すると、属性のすべての値が削除されます。attribute: valueペアを指定すると、その値のみが削除されます。
このタスクの実行には、DSCCが使用できます。詳細は、「Directory Service Control Centerのインタフェース」およびDSCCのオンライン・ヘルプを参照してください。
複数値属性の1つの値をldapmodifyコマンドで変更するには、次の例に示すように2つの操作を実行する必要があります。
$ ldapmodify -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w - Enter bind password: dn: uid=bjensen,ou=People,dc=example,dc=com changetype: modify delete: mobile mobile: (408) 555-7845 - add: mobile mobile: (408) 555-5487
このタスクの実行には、DSCCが使用できます。詳細は、「Directory Service Control Centerのインタフェース」およびDSCCのオンライン・ヘルプを参照してください。
注意: 必ずDirectory Server Enterprise Editionソフトウェアに付属のldapdeleteユーティリティを使用してください。
ldapdeleteコマンドライン・ユーティリティを使用して、ディレクトリからエントリを削除します。このユーティリティにより、ディレクトリ・サーバーへのバインド、およびDNに基づく1つ以上のエントリの削除を実行します。指定されたエントリを削除する権限を持つバインドDNを指定する必要があります。
子を持つエントリは削除できません。LDAPプロトコルでは、子エントリが親を持たないことを禁止しています。たとえば、まず組織単位に属するすべてのエントリを削除しないと、その組織単位のエントリは削除できません。
次の例は、組織単位にエントリが1つしかないことを示しています。このエントリを削除すると、その親エントリは削除できます。
$ ldapdelete -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w - Enter bind password: uid=bjensen,ou=People,dc=example,dc=com ou=People,dc=example,dc=com
このタスクの実行には、DSCCが使用できます。詳細は、「Directory Service Control Centerのインタフェース」およびDSCCのオンライン・ヘルプを参照してください。
注意: 必ずDirectory Server Enterprise Editionソフトウェアに付属のldapmodifyユーティリティを使用してください。
ldapmodifyユーティリティを使用する場合、changetype: deleteキーワードを使用してエントリを削除することもできます。前の項で説明したように、ldapdeleteの使用時と同じ制限がすべて適用されます。エントリの削除にLDIF構文を使用する利点は、単一のLDIFファイルで混合の操作を実行できるということです。
次の例では、前の例と同じ削除操作を実行しています。
$ ldapmodify -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w - dn: uid=bjensen,ou=People,dc=example,dc=com changetype: delete dn: ou=People,dc=example,dc=com changetype: delete
このタスクの実行には、DSCCが使用できます。詳細は、「Directory Service Control Centerのインタフェース」およびDSCCのオンライン・ヘルプを参照してください。
注意: 必ずDirectory Server Enterprise Editionソフトウェアに付属のldapsearchユーティリティを使用してください。
ldapsearchコマンドライン・ユーティリティを使用して、ディレクトリ・エントリを検索および取得できます。
ldapsearchの使用方法、一般的なldapsearchオプション、受け入れられるフォーマットおよび例については、Oracle Directory Server Enterprise Editionリファレンスを参照してください。
この手順では、DN変更操作を使用します。この操作を開始する前に、必ず「DN変更操作を使用するためのガイドラインおよび制限」を読んでよく理解してください。
この手順では部分的ですが、タスクの実行にDSCCを使用できます。詳細は、「Directory Service Control Centerのインタフェース」およびDSCCのオンライン・ヘルプを参照してください。その他の部分の手順では、コマンドラインを使用しなければ実行できません。
注意: グループのuniquememberとなるエントリのDNを変更する場合、参照整合性プラグインが有効である必要があります。参照整合性により、エントリを移動するときにグループ・メンバーが調整されるようになります。参照整合性プラグインの有効化および構成の方法については、「参照整合性プラグインを構成するには:」を参照してください。
エントリの移動元の親エントリ上で、構文allow (export ...)を使用することで、ACIでエクスポート操作が許可されるようにします。
エントリの移動先の親エントリ上で、構文allow (import ...)を使用することで、ACIでインポート操作が許可されるようにします。
ACIの使用の詳細は、第6章「Directory Serverのアクセス制御」を参照してください。
前のリリースのDirectory Serverとの互換性を確保するため、デフォルトでDN変更操作は無効です。
すでにDN変更操作が有効な場合、次の手順に進みます。
サーバーでグローバルにDN変更操作を有効にするには、次の操作を実行します。
$ dsconf set-server-prop -h host -p port moddn-enabled:on
この手順では、DN変更操作を使用します。次のいずれか1つを実行します。
エントリを移動します。
たとえば、次のコマンドを実行すると、エントリuid=bjensenはコントラクタのサブツリーou=Contractors,dc=example,dc=comから従業員のサブツリーou=People,dc=example,dc=comに移動します
$ ldapmodify -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w - Enter bind password: dn: uid=bjensen,ou=Contractors,dc=example,dc=com changetype: modrdn newrdn: uid=bjensen deleteoldrdn: 0 newsuperior: ou=People,dc=example,dc=com
エントリの名前を変更します。
たとえば、次のコマンドを実行すると、エントリの名前がuid=bbjensenからuid=bjensenに変更されます。
$ ldapmodify -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w - Enter bind password: dn: uid=bbjensen,ou=People,dc=example,dc=com changetype: modrdn newrdn: uid=bjensen deleteoldrdn: 1
LDIF文を記述する際は、次の属性に注意してください。
dn - 名前の変更または移動を行うエントリを指定します。
changetype: modrdn - DN変更操作を使用することを指定します。
newrdn - 新しいネーミング属性を指定します。
deleteoldrdn - 前のネーミング属性をエントリから削除するかどうかを指定します(1は削除、0は削除しない)。
エントリ定義でネーミング属性が必須の場合、その属性はエントリから削除できません。
newsuperior - エントリの新しい上位属性を指定します。
ldapmodifyコマンドとそのオプションの詳細は、ldapmodify(1)のマニュアル・ページを参照してください。
$ dsconf set-server-prop -h host -p port db-lock-count:value
このプロパティを変更する場合、その変更を有効にするにはサーバーを再起動する必要があります。
前の項で述べたようにDN変更操作を使用する場合、次の項で説明するガイドライン従ってください。
DN変更操作を使用して、エントリをある接尾辞から別の接尾辞に移動したり、ルート接尾辞の移動や名前変更を行わないでください。
entryid操作属性は、内部で使用するためのみに予約されているため、アプリケーションでは使用しないでください。エントリのentryid属性は、エントリを移動するときに変更できます。
DN変更操作は、サーバー上のすべての接尾辞でグローバルに有効にすることも、操作を実行する各接尾辞で個別に有効にすることもできます。デフォルトでは、DN変更操作は無効です。
DN変更操作を実行する各接尾辞でACI権限を拡張します。Importアクセス権により、エントリを指定されたDNにインポートできます。Exportアクセス権により、エントリを指定されたDNからエクスポートできます。
DN変更操作を実行する前に、その操作によりクライアント認証が無効にならないことを確認してください。クライアント証明書を参照するエントリを移動する場合、クライアント認証は無効になります。エントリを移動した後、証明書を検証してください。
DN変更操作を実行する前に、この操作によってアプリケーションが中断されることがないようにしてください。エントリの移動または名前変更は、いくつかの接尾辞に影響したり、エントリの次の特性を変える場合があります。
エントリのフィルタ処理されたロールの範囲。
エントリのネストされたロール。ネストされたロールにはフィルタ処理されたゴールが含まれます。
エントリの動的グループ・メンバーシップ。
![]() | 注意: 次の要件を遵守せずにDN変更操作を使用すると、レプリケートが中断され、ディレクトリ・サービスが停止する場合があります。 |
レプリケーション・トポロジ内のすべてのサーバー上で、DN変更操作を有効にします。DN変更操作がマスター・サーバー上でサポートされていても、コンシューマ・サーバー上でサポートされていないと、レプリケーションは失敗します。サプライヤ・サーバーのエラー・ログには、次のようなメッセージが書き込まれます。
Unable to start a replication session with MODDN enabled
レプリケーションを再開するには、DN変更操作をすべてのサーバー上で使用できるようにレプリケーション・トポロジを再構成してから、次のいずれかの方法でレプリケーション・セッションを開始します。
「レプリケーションの更新を強制するには:」の説明に従う。
サプライヤ・サーバーでエントリを変更する。この変更はコンシューマ・サーバーにレプリケートされます。
トポロジ内のすべてのマスター・レプリカ上で参照整合性プラグインを有効化および構成します。この操作により、サーバーでグループおよびロールの参照整合性が確実に維持されます。参照整合性プラグインの有効化および構成の方法については、「参照整合性プラグインを構成するには:」を参照してください。
DN変更操作を実行した後で、参照整合性プラグインにより変更内容がレプリケートされるまで待機します。