21 ディレクトリ・スキーマの管理
21.1 ディレクトリ・スキーマの管理の概要
この項では、ディレクトリ・スキーマの管理および関連するトピックについて説明します。
この項では、次のトピックについて説明します。
関連項目:
『Oracle Fusion Middleware Oracle Identity Managementリファレンス』のLDAPスキーマの概要に関する項。
21.1.1 ディレクトリ・スキーマ管理の理解
ディレクトリ内のベース・スキーマの追加または変更を行う前に、ディレクトリのコンポーネントの基本概念を理解しておいてください。
ディレクトリ・スキーマには、次の機能があります。
-
ディレクトリに格納できるオブジェクトの種類に関する規則を含んでいます。
-
検索などの処理時にディレクトリ・サーバーとクライアントが情報を扱う方法の規則を含んでいます。
-
ディレクトリに格納されているデータの整合性と品質をメンテナンスするのに役立ちます。
-
データの重複を削減します。
-
ディレクトリに対応したアプリケーションがディレクトリ・オブジェクトにアクセスしたり変更したりするための、予測可能な方法を提供します。
ノート:
Oracle Internet Directoryのスキーマ・オブジェクトには、それぞれ特定の制限があります。たとえば、一部のオブジェクトは変更できません。これらの制限事項は、ここでは制約や規則として説明しています。
21.1.2 ディレクトリにおけるスキーマ情報の記憶域の場所
ディレクトリ・スキーマには、DIT内のデータを編成する方法に関するすべての情報(オブジェクト・クラス、属性、一致規則、構文などのメタデータ)が含まれています。この情報は、サブエントリと呼ばれる特別なクラスのエントリに格納されます。Oracle Internet Directoryは、LDAPバージョン3の規格に従って、タイプsubSchemaSubentry
のサブエントリにこの情報を格納します。
subSchemaSubentry
タイプのサブエントリに新規のオブジェクト・クラスと属性タイプを追加できます。Oracle Internet Directoryですでにサポートされているこれらのもの以外に、新規の一致規則や構文を追加することはできません。
10g(10.1.4.0.1)の前は、ルートDSEエントリcn=subSchemaSubentry
の直下にsubSchemaSubentry
が1つしかなく、常にオブジェクト・クラスと属性タイプを直接追加していました。10g(10.1.4.0.1)では、エントリcn=subSchemaSubentry
に下位エントリを設定できるようになりました。スキーマ・コンポーネントを追加する必要のある、Oracle Internet Directoryを使用するアプリケーションはいずれも、cn=subSchemaSubentry
の下に固有のsubSchemaSubentry
を作成し、そこにスキーマ・コンポーネントを追加できます。図21-1は、cn=userdefined1,cn=subschemasubentry
やcn=userdefined2,cn=subschemasubentry
など、アプリケーションによって定義されたsubSchemaSubentry
エントリをいくつか示しています。
ベスト・プラクティスは、アプリケーションまたはアプリケーションのグループごとにsubschemasubentry
の下に1つの下位エントリを作成することです。アプリケーションに関連するすべてのattributeTypesおよびobjectClassesは、cn=subschemasubentry
の下の対応するエントリの下に配置する必要があります。
スキーマ・エントリはすべて、ルートDSE属性subschemasubentry
に示されています。
図21-1 subSchemaSubentryタイプのエントリでのスキーマ・コンポーネントの位置
![この図はテキストで説明します。 この図はテキストで説明します。](img/oidag142.gif)
subSchemaSubentry
エントリの追加には、bulkload
を使用できません。ldapadd
を使用する必要があります。
21.1.3 オブジェクト・クラスの理解
この項では、オブジェクト・クラスおよび関連するトピックについて説明します。
この項では、次のトピックについて説明します。
21.1.3.1 オブジェクト・クラスについて
エントリを追加する場合は、そのエントリを1つ以上のオブジェクト・クラスと関連付けます。各オブジェクト・クラスには、新規エントリと関連付ける属性が含まれています。
たとえば、従業員に関するエントリを作成する場合は、そのエントリをperson
オブジェクト・クラスと関連付けることができます。このオブジェクト・クラスには、その従業員エントリと関連付ける多くの属性(名前、住所、電話番号など)が含まれています。
ノート:
Oracle Directory Services Managerの「スキーマ」タブの「属性」ページには、属性を直接参照するオブジェクト・クラスを示す「参照元」セクションがあります
各オブジェクト・クラスは、スーパークラスの階層から派生し、これらのスーパークラスからの属性を継承します。デフォルトでは、すべてのオブジェクト・クラスはtop
オブジェクト・クラスから継承します。オブジェクト・クラスをエントリに割り当てると、エントリは、そのオブジェクト・クラスとそのオブジェクト・クラスのスーパークラスの両方の属性をすべて継承します。
エントリがスーパークラスから継承する属性は、必須またはオプションのいずれかです。オプション属性の値は、ディレクトリ・エントリに存在している必要はありません。
オブジェクト・クラスに対して、属性が必須またはオプションのいずれであるかを指定できますが、指定した特性はそのオブジェクト・クラスに対してのみバインドされます。その属性を別のオブジェクト・クラスに配置する場合は、このオブジェクト・クラスに対してその属性が必須またはオプションのいずれであるかを再度指定できます。次の操作を実行できます。
-
標準以外の新規オブジェクト・クラスの追加と既存属性の割当て
-
既存の標準オブジェクト・クラスからの選択
-
既存のオブジェクト・クラスの変更、異なる属性のセットへの割当て
-
既存の属性の追加と変更
関連項目:
Oracle Internet Directoryとともにインストールされるスキーマ要素のリストは、『Oracle® Fusion Middleware Oracle Identity Managementリファレンス』のLDAPスキーマの概要に関する項を参照してください
エントリはトップダウン順序で追加する必要があります。つまり、エントリを追加するときに、そのすべての親エントリがディレクトリ内に存在している必要があります。同様に、オブジェクト・クラスと属性を参照するエントリを追加する場合は、参照されるオブジェクト・クラスと属性がディレクトリ・スキーマに存在している必要があります。通常は、ディレクトリ・サーバーには標準のディレクトリ・オブジェクトの完全なセットが用意されているため、このことは問題になりません。
エントリに操作を追加または実行する場合、そのエントリに関連付けられたスーパークラスの階層全体を指定する必要はありません。リーフ・オブジェクト・クラスの指定のみで済みます。Oracle Internet Directoryは、リーフ・オブジェクト・クラスの階層を解決して、情報モデル制約を適用します。これは多くの場合、オブジェクト・クラスの増加と呼ばれます。たとえば、inetOrgPerson
オブジェクト・クラスは、そのスーパークラスとして、top
、person
およびorganizationalPerson
を持っています。ある人物を表すエントリを作成する場合、オブジェクト・クラスとして指定する必要があるのはinetOrgPerson
のみです。Oracle Internet Directoryは、各スーパークラスtop
、person
およびorganizationalPerson
によって定義されたスキーマ制約を適用します。
21.1.3.2 オブジェクト・クラスの追加
オブジェクト・クラスを追加するときは、次の点に注意してください。
-
すべての構造型オブジェクト・クラスには、スーパークラスとして
top
を設定する必要があります。 -
オブジェクト・クラスの名前とオブジェクト識別子は、すべてのスキーマ・コンポーネントを通して一意であることが必要です。実際の属性名と属性名の別名は、すべての属性名と属性別名を通して一意であることが必要です。オブジェクト識別子は一意の識別子、2.16.840.1.113894で始まり、その後ろにOracle指定の接頭辞.9999か、サイト固有の接頭辞が続いている必要があります。
-
オブジェクト・クラスで参照されるスキーマ・コンポーネント(スーパークラスなど)は、すでに存在している必要があります。
-
抽象型オブジェクト・クラスの場合は、スーパークラスも抽象型であることが必要です。
-
スーパークラスの必須属性は、新規オブジェクト・クラスでオプション属性に再定義することが可能です。同様に、スーパークラスのオプション属性は、新規オブジェクト・クラスで必須属性に再定義できます。
関連項目:
これらの用語の概念の説明は、「サブクラス、スーパークラスおよび継承」を参照してください
21.1.3.3 既存のオブジェクト・クラスに対する変更のタイプ
既存のオブジェクト・クラスに対する変更は、Oracle Directory Services Managerおよびコマンド行ツールを使用して実行できます。
オブジェクト・クラスに対しては、次の変更を次の方法で実行できます。
-
必須属性からオプション属性への変更
-
オプション属性の追加
-
スーパークラスの追加
-
抽象型オブジェクト・クラスから構造型または補助型オブジェクト・クラスへの変換(その抽象型オブジェクト・クラスが、別の抽象型オブジェクト・クラスのスーパークラスではない場合)
オブジェクト・クラスを変更するときは、次のガイドラインに注意してください。
-
標準のLDAPスキーマの一部であるオブジェクト・クラスは変更できません。ユーザー定義のオブジェクト・クラスは変更できます。
-
必要な属性が既存のオブジェクト・クラスに設定されていない場合は、補助型オブジェクト・クラスを作成して、必要な属性をそのオブジェクト・クラスに関連付けることができます。
-
既存のオブジェクト・クラスに、必須属性を追加できません。
-
ベース・スキーマのオブジェクト・クラスは変更できません。
-
既存のオブジェクト・クラスから属性またはスーパークラスを削除できません。
-
構造型オブジェクト・クラスは、他の型のオブジェクト・クラスに変換できません。
-
エントリがすでに関連付けられているオブジェクト・クラスは変更しないでください。
21.1.4 属性の理解
属性を追加、変更または削除する方法について説明します。
この項では、次のトピックについて説明します。
21.1.4.1 属性の概要
属性を扱う操作を実行する前に、概念的な観点から属性を理解する必要があります。
多くの場合、ベース・スキーマにある属性で、ユーザーの組織のニーズを満たすことができます。ベース・スキーマにない属性を使用する場合は、新規属性の追加または既存属性の変更が可能です。
デフォルトでは、属性は複数値です。Oracle Directory Services Managerまたはコマンド行ツールを使用して、属性を単一値に指定できます。
ノート:
非バイナリ属性の最大長は4000バイトです。
関連項目:
-
属性の概念の説明は、「Oracle Internet Directory内の属性の概念の理解」を参照してください
-
属性オプションの詳細は、「属性オプション」を参照してください
-
属性値のサイズを指定する構文の使用方法の詳細は、『Oracle Fusion Middleware Oracle Identity Managementリファレンス』の属性の構文に関する項を参照してください
。
21.1.4.2 属性の追加に関する規則
属性の追加に関しては、次の規則があります。
-
属性の名前とオブジェクト識別子は、すべてのスキーマ・コンポーネントを通して一意であることが必要です。
-
構文と一致規則は、整合性がとれている必要があります。
-
スーパー属性はすでに存在している必要があります。
-
属性名の長さは127文字までです。
21.1.4.3 属性の変更に関する規則
属性の変更に関しては、次の規則があります。
-
属性の名前とオブジェクト識別子は、すべてのスキーマ・コンポーネントを通して一意であることが必要です。
-
属性の構文は変更できません。
-
単一値の属性は複数値の属性に変更できますが、複数値の属性を単一値の属性に変更することはできません。
-
ベース・スキーマの属性は、変更または削除できません。
21.1.4.4 属性の削除に関する規則
属性の削除に関しては、次の規則があります。
-
削除できるのはユーザー定義属性のみです。ベース・スキーマの属性は削除しないでください。
-
他のスキーマ・コンポーネントから直接または間接的に参照されていない属性は、削除することができます。
エントリの参照先である属性を削除すると、そのエントリはディレクトリ操作に使用できなくなります。
ノート:
Oracle Directory Services Managerの「スキーマ」タブの「属性」ページには、属性を直接参照するオブジェクト・クラスを示す「参照元」セクションがあります
関連項目:
属性値のサイズを指定する構文の使用方法の詳細は、『Oracle Fusion Middleware Oracle Identity Managementリファレンス』の属性の構文に関する項を参照してください。
21.1.4.5 属性を検索するためのOracle Internet Directoryでの索引オプション
Oracle Internet Directoryでは、索引の使用により検索時に属性の利用が可能になります。Oracle Internet Directoryのインストール時に、検索で使用できる属性のリストがエントリcn=catalogs
に表示されます。
Oracle Internet Directory 11g リリース1(11.1.1.6.0)では、新規インストールで新しい自動カタログ機能がデフォルトで有効化されます。以前のリリースからアップグレードした場合も、これを有効にできます。この機能を有効にすると、属性を検索したときに、属性がOracle Internet Directoryによって自動的に索引付けされます。DSA構成エントリのorclautocatalog
属性を0に設定すると、この機能を無効化できます。コマンド行からこの属性を変更するには、「ldapmodifyを使用したシステム構成属性の設定」を参照してください。Oracle Enterprise Manager Fusion Middleware Controlを使用してこの属性を変更するには、「共有プロパティの構成」を参照してください。
自動カタログ機能を有効化しないで、追加の属性を検索フィルタで使用する必要がある場合は、それらをカタログ・エントリに追加する必要があります。
ldapmodify
またはcatalog
を使用して、属性に索引付けしたり、属性から索引を削除できます。また、Oracle Directory Services Managerを使用して属性の索引を管理することもできます。
ノート:
-
自動カタログが無効の場合に、必須属性として指定された、索引付けされていない属性を使用して検索を実行しようとすると、サーバーから
「この機能は組み込まれていません」
または「ディレクトリ・サービス・エージェントが実行不可の状態です。」
エラーが返されます。 -
有効なユーザーがOracle Internet Directoryに接続した場合にのみ、自動カタログが実行されます。匿名バインド検索では、自動カタログ機能はトリガーされません。また、このイベントは監査されます。2つ以上のクライアントが、索引付けされていない同じ属性を同時に検索した場合は、1つのスレッドでのみカタログ・プロセスが開始されます。他のスレッドは、LDAPエラー53および追加情報
OID-5018: 属性のカタログ作成はすでに進行中です
を返します。カタログ作成スレッドは、(別の)カタログ作成プロセスが完了するのを待機するか、または構成したorclmaxserverresptime
まで待機します。orclmaxserverresptime
が経過すると、カタログ作成スレッドはLDAPエラー53および追加情報OID-5018: 属性のカタログ作成はすでに進行中です
を返します。各属性のカタログが作成されるのはディレクトリごとに1回だけであるため、このことが行われるのはカタログ化されていない属性ごとに1回だけです。クライアント側のタイムアウトや明示的なkillコマンドが原因で検索が中断された場合、進行中のカタログ作成は続行され、カタログ作成プロセスが完了すると、同じ属性に対する後続の検索は正常に行われます。 -
Oracle Directory Services Managerでは、属性がまだ使用されていない場合にのみその属性に索引を付けることができます。Oracle Directory Services Managerを使用して、すでに使用されている属性に索引を付けることはできません。使用中の属性に索引付けするには、「ldapmodifyを使用した属性の索引付け」の説明に従ってldapmodifyを使用するか、「カタログ管理ツールを使用した属性の索引付け」の説明に従ってカタログ管理ツールを使用します。
ノート:
次のルールを保持する属性にのみ索引を作成できます。
-
等価の一致規則
-
Oracle Internet Directoryでサポートされる一致規則は、『Oracle Fusion Middleware Oracle Identity Managementリファレンス』の属性の一致規則に関する項を参照してください。
-
属性名が127文字以下
21.1.5 エントリと関連付けられた属性数を拡大する方法
エントリと関連付けられた属性数を拡大する方法について説明します。
この項の内容は次のとおりです。
21.1.5.1 エントリと関連付けられた属性数の拡大
エントリの属性数を拡大できます。使用する方法は、エントリがすでに存在するかどうかによって異なります。
エントリがまだない場合、ディレクトリにエントリを作成する前に属性数を拡大できます。
既存エントリの場合、関連付ける属性数の拡大方法には2通りあります。
-
各エントリの
objectclass
属性のリストにオブジェクト・クラスの名前を追加します。ディレクトリが比較的小さい場合は、属性に基づいてエントリを検索できるため、この方法が適しています。一方、ディレクトリが大きい場合は、objectclass
属性へのオブジェクト・クラスの名前の入力が、非常に複雑な作業になる場合があります。 -
コンテンツ・ルールを使用します。大きいディレクトリでエントリの内容を拡大する場合、この方が効率的な場合があります。
21.1.5.2 ディレクトリでエントリを作成する前の属性数の拡大
Oracle Internet Directoryは、インストール時に、標準的なLDAPオブジェクト・クラスといくつかの専用オブジェクト・クラスを用意します。この事前に定義されたオブジェクト・クラスに属している属性のセットには、必須属性を追加できません。エントリに必要なすべての属性が所定のオブジェクト・クラスに含まれていない場合には、次のうちのいずれかを行います。
-
新規の(ベース)オブジェクト・クラスの定義
-
オブジェクト・サブクラスの定義
関連項目:
-
Oracle Internet Directoryとともにインストールされるスキーマに含まれるオブジェクト・クラスのリストは、『Oracle Fusion Middleware Oracle Identity Managementリファレンス』の「Oracle Identity Management」のLDAPオブジェクト・クラスに関する項を参照してください
-
新規のオブジェクト・クラスまたはオブジェクト・サブクラスを定義する方法は、「Oracle Directory Services Managerを使用したオブジェクト・クラスの追加」を参照してください
-
21.1.5.3 補助型オブジェクト・クラスの作成によって既存エントリの属性数を拡大するための仕様
エントリに必要な追加属性を含む補助型オブジェクト・クラスを作成し、その補助型オブジェクト・クラスをエントリと関連付けることができます。補助型オブジェクト・クラスをエントリと関連付けるには、エントリのobjectclass
属性でそれを指定します。
関連項目:
-
補助型オブジェクト・クラスの作成方法の詳細は、「Oracle Directory Services Managerを使用したオブジェクト・クラスの追加」を参照してください
-
オブジェクト・クラスをエントリと関連付ける方法の詳細は、「Oracle Internet Directoryでのディレクトリ・エントリの管理」を参照してください
21.1.5.4 コンテンツ・ルールの作成によって既存エントリの属性数を拡大するための仕様
コンテンツ・ルールは、仕様に従って、特定の構造型オブジェクト・クラスと関連付けられたエントリで使用されるコンテンツの種類を決定します。たとえば、person
オブジェクト・クラスと関連付けられたエントリは、そのオブジェクト・クラスの属性だけでなく、他の属性も持つ必要があることを指定できます。追加属性は、補助型オブジェクト・クラスの必須またはオプションの属性にできます。
エントリには補助型クラスをリストする必要があります(これはかなりの管理負荷になることがあります)が、コンテンツ・ルールをリストする必要はありません。
コンテンツ・ルールには、コンテンツ・ルールが適用される構造型オブジェクト・クラスだけでなく、次のものも含めることができます。
-
規則によって制御されるエントリで使用可能な補助型オブジェクト・クラス
-
構造型および補助型オブジェクト・クラスに必要な属性に加え、DITコンテンツ・ルールによって制御されるエントリで必要な必須属性
-
構造型および補助型オブジェクト・クラスに必要な属性に加え、DITコンテンツ・ルールによって制御されるエントリで使用可能なオプション属性
この項では、Oracle Directory Services Managerおよびコマンド行ツールを使用してコンテンツ・ルールを管理する方法を説明します。
新しいコンテンツ・ルールの定義中に、ディレクトリ・サーバーは構文を検証し、コンテンツ・ルールにリストされた属性およびオブジェクト・クラスがディレクトリで定義済であることを確認します。
コンテンツ・ルールは、構造型オブジェクト・クラスに対してのみ指定できます。オブジェクト・クラスの名前では、大文字と小文字が区別されます。
各構造型オブジェクト・クラスに複数のコンテンツ・ルールを指定できます。ただし、コンテンツ・ルールは、オブジェクト・クラスごとに異なるラベルで関連付ける必要があります。
コンテンツ・ルールの既存の定義を変更する場合、クライアントは既存の定義を削除した後で、新しい定義を追加する必要があります。replace
コマンドを使用してコンテンツ・ルールを単純に置き換えることはできません。
コンテンツ・ルールを削除する場合、クライアントは構造型オブジェクト・クラスおよびコンテンツ・ルールの英数字のオブジェクト識別子のみを指定する必要があります。オプションで、削除するコンテンツ・ルールの関連バージョンを指定することもできます。
21.1.5.5 コンテンツ・ルールを作成および変更するための規則
コンテンツ・ルールは、サブスキーマ・サブエントリ(cn=subschemasubentry
)のDITContentRule
属性の値として定義されます。これらは、次の規則に準拠する必要があります。
-
エントリの構造型オブジェクト・クラスは、エントリに適用可能なコンテンツ・ルールを識別します。構造型オブジェクト・クラスに対するコンテンツ・ルールが存在しない場合、そのオブジェクト・クラスと関連付けられたエントリには、構造型オブジェクト・クラス定義によって許可された属性のみが含まれます。
-
コンテンツ・ルールは構造型オブジェクト・クラスと関連付けられるため、同じ構造型オブジェクト・クラスのすべてのエントリが、DITでの位置に関係なく、同じコンテンツ・ルールを持ちます。
-
エントリのコンテンツは、そのエントリの
objectClass
属性にリストされたオブジェクト・クラスの一貫性を維持している必要があります。具体的には、次の条件を満たしている必要があります。-
objectClass
属性にリストされたオブジェクト・クラスの必須属性は、常にエントリ内に存在する必要があります。 -
コンテンツ・ルールで指定された補助型オブジェクト・クラスのオプション属性は、
objectClass
属性にそれらの補助型オブジェクト・クラスがリストされていない場合でも存在できます。関連項目:
コンテンツ・ルールの作成と管理の詳細は、「補助型オブジェクト・クラスの作成によって既存エントリの属性数を拡大するための仕様」を参照してください
-
21.1.5.6 コンテンツ・ルール使用時のスキーマ制約
スキーマ整合性についてオブジェクトを検証する場合、ディレクトリ・サーバーはエントリの構造型オブジェクト・クラスのコンテンツ・ルールを使用します。また、エントリにリストされたその他すべてのオブジェクト・クラスも使用します。
オブジェクト・クラスに複数のコンテンツ・ルールが存在する場合は、エントリの追加または変更時、あるいはデータのバルク・ロード時に、次の規則が適用されます。
-
エントリには、各種コンテンツ・ルールにリストされたすべての補助型オブジェクト・クラスからの属性を含めることができます。コンテンツ・ルールにオブジェクト・クラスが指定されていない場合、クライアントは、制限なくディレクトリ・エントリの補助型オブジェクト・クラスを明示的に追加できます。
-
エントリには、次のものにリストされたすべての必須属性の値を含める必要があります。
-
コンテンツ・ルール
-
エントリと関連付けられたオブジェクト・クラス
-
エントリに適用可能なコンテンツ・ルールにリストされた補助型オブジェクト・クラス
-
-
オプションで、次のものにリストされたオプション属性の一部またはすべての値をエントリに含めることができます。
-
コンテンツ・ルール
-
エントリにリストされたオブジェクト・クラス
-
エントリに適用可能なコンテンツ・ルールにリストされた補助型オブジェクト・クラス
-
-
必須と指定された属性は、その属性をオプションと定義する他のすべての定義をオーバーライドします。
21.1.5.7 コンテンツ・ルールにリストされたオブジェクト・クラスの検索
コンテンツ・ルールにリストされた補助型オブジェクト・クラスは、エントリのobjectclass
属性にリストされないため、それらのオブジェクト・クラスをエントリ検索時にフィルタとしてリストすることはできません。かわりに、関連する構造型オブジェクト・クラスに基づいて検索します。補助型オブジェクト・クラスに基づいて検索する必要がある場合は、その補助型オブジェクト・クラスをユーザー・オブジェクトのobjectclass
属性に明示的に追加します。
たとえば、構造型オブジェクト・クラスinetOrgPerson
のコンテンツ・ルールは、補助型オブジェクト・クラスorclUser
を指定できます。ただし、これは、ディレクトリ内のすべてのinetOrgPerson
エントリにorclUser
がobjectclass
属性の値として含まれることを意味しません。したがって、フィルタobjectclass=orclUser
を使用した検索は失敗します。コンテンツ・ルールに含まれる補助型オブジェクト・クラスを問い合せるかわりに、objectclass=inetOrgPerson
などの構造型オブジェクト・クラスを問い合せる必要があります。
objectclass=orcluser
に基づいて検索するには、各エントリのobjectclass
属性の値の1つとしてorclUser
を追加します。
この注意事項は、アクセス制御ポリシーで使用するフィルタにも適用されます。追加の補助型オブジェクト・クラスと関連付けられたコンテンツ・ルールを使用している場合、検索フィルタでは構造型オブジェクト・クラスのみを使用します。
21.1.6 属性別名の理解
10g(10.1.4.0.1)では、属性名の別名を作成できます。たとえば、属性sn
に対してわかりやすい別名surname
(姓)を作成する、といったことができます。属性名に別名を作成すると、ユーザーはLDAP操作で属性名のかわりに別名を指定できます。
属性のLDAPスキーマ定義で、属性に対して別名を定義します。ディレクトリ・スキーマの操作属性attributeTypes
が強化され、属性名リストに別名を含めることができるようになりました。これまでのリリースでは、属性名リストの形式は、次のようなものでした。
attributeTypes=( ObjectIdentifier NAME 'AttributeName' ... )
10g(10.1.4.0.1)では、オプションで次のように指定できます。
attributeTypes=( ObjectIdentifier NAME ( 'AttributeName' 'Alias1' 'Alias2' ...) ... )
これは、RFC 2251およびRFC 2252で指定されているように、LDAPプロトコルと一致します。属性名リストでは、最初の項目は属性の名前として認識され、リストの残りの項目は属性別名として認識されます。たとえば、属性sn
に別名surname
を指定するには、sn
のスキーマ定義について次の変更を行います。
attributeTypes=( 2.5.4.4 NAME 'sn' SUP name )
変更後:
attributeTypes=( 2.5.4.4 NAME ( 'sn' 'surname') SUP name )
次の規則が属性別名に適用されます。
-
属性別名は、すべてのスキーマ・コンポーネントにわたり、実際の属性名とその他の属性別名すべてを通して一意である必要があります。属性を定義する場合、
attributeTypes
定義のNAME
フィールドの最初の値は、実際の属性名である必要があります。実際の属性名の後に、NAME
フィールドで属性別名を定義します。 -
属性別名は、属性名と同じ構文規則に従います。
-
別名のない属性を再定義することにより、属性別名を削除します。
「コマンド行を使用したディレクトリ・スキーマの管理」を参照してください。
関連項目:
別名エントリの詳細は、「別名エントリの管理」を参照してください。
21.2 Oracle Directory Services Managerを使用したディレクトリ・スキーマの管理
Oracle Directory Services Managerを使用し、オブジェクト・クラスに対して検索、追加、削除など様々な操作を行うことができます。
この項では、次の項目について説明します。
21.2.1 Oracle Directory Services Managerを使用したオブジェクト・クラスの検索
Oracle Directory Services Managerを使用してオブジェクト・クラスを検索するには:
21.2.2 Oracle Directory Services Managerを使用したオブジェクト・クラスの追加
Oracle Directory Services Managerを使用してオブジェクト・クラスを追加するには:
関連項目:
-
オブジェクト・クラスを追加する方法の詳細は、Oracle Directory Services Managerのオンライン・ヘルプを参照してください。
21.2.3 Oracle Directory Services Managerを使用したオブジェクト・クラスの変更
すでにエントリで使用されているオブジェクト・クラスには、オプション属性は追加できますが、必須属性は追加できません。すでに使用されているオブジェクト・クラスにオプション属性を追加する場合、特別なルールは適用されず、属性は空の属性としてエントリに追加されます。
オブジェクト・クラスを変更するには:
21.2.4 Oracle Directory Services Managerを使用したオブジェクト・クラスの削除
ノート:
ベース・スキーマからはオブジェクト・クラスを削除しないことをお薦めします。エントリの参照先であるオブジェクト・クラスを削除すると、そのエントリにアクセスできなくなります。
ベース・スキーマからオブジェクト・クラスを削除すると、Oracle Directory Services Managerの不具合の原因になることもあります。
Oracle Directory Services Managerを使用してオブジェクト・クラスを削除するには:
- 「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
- タスク選択バーで、「スキーマ」を選択します。
- 「オブジェクト・クラス」の横の「+」をクリックし、「オブジェクト・クラス」パネルを展開します。スクロールバーを使用して、「オブジェクト・クラス」のアルファベット順のリストを移動します。
- 削除するオブジェクト・クラスを選択します。
- ツールバーから「削除」を選択し、確認ダイアログ・ボックスで「削除」をクリックします。
21.2.5 Oracle Directory Services Managerを使用したオブジェクト・クラスのプロパティの表示
スキーマ内のすべてのオブジェクト・クラスを表示するには:
- 「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
- タスク選択バーで、「スキーマ」を選択します。
- 「オブジェクト・クラス」の横の「+」をクリックし、「オブジェクト・クラス」パネルを展開します。スクロールバーを使用して、「オブジェクト・クラス」のアルファベット順のリストを移動します。
- 表示するオブジェクト・クラスをクリックします。ページの右側に「オブジェクト・クラス」タブが表示されます。
- オブジェクト・クラスのスーパークラスまたは属性の詳細を表示するには、対象を選択して「編集」をクリックします。オブジェクト・クラス・パネルに戻るには、「取消」をクリックします。
21.2.7 Oracle Directory Services Managerを使用した属性の変更
Oracle Directory Services Managerを使用して属性を変更するには:
- 「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
- タスク選択バーで、「スキーマ」を選択します。
- 「属性」パネルで、変更する属性を選択します。右側に「属性」ページが表示されます。
- 属性タブで、必要に応じて編集可能なフィールド内の情報を変更または追加します。
- 「適用」を選択します。
21.2.8 Oracle Directory Services Managerを使用した属性の削除
ノート:
ベース・スキーマから属性またはオブジェクト・クラスを削除しないことをお薦めします。
ベース・スキーマから属性またはオブジェクト・クラスを削除すると、Oracle Directory Services Managerの不具合の原因になることがあります。
属性を削除するには:
- 「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
- タスク選択バーで、「スキーマ」を選択します。
- 「属性」パネルで、削除する属性を選択します。
- 左側のパネルのツールバーから「削除」を選択し、確認ダイアログ・ボックスで「削除」をクリックします。
21.2.9 Oracle Directory Services Managerを使用したすべてのディレクトリ属性の表示
Oracle Directory Services Managerを使用して属性を表示するには:
21.2.10 Oracle Directory Services Managerを使用した属性の検索
Oracle Directory Services Managerを使用して属性を検索するには:
- 「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
- タスク選択バーで、「スキーマ」を選択します。
- 左側のペインで「属性」リストを展開します。
- 左側のペインの「検索」フィールドに検索条件を入力します。アスタリスク(
*
)または疑問符(?
)をワイルドカードとして使用できます。「実行」アイコンをクリックするか、キーボードの[Enter]
を押します。 - 検索結果は左側のペインのリストに表示されます。検索を終了して属性の全一覧に戻るには、「検索テキストのクリア」アイコンをクリックします。
21.2.11 Oracle Directory Services Managerを使用して新規属性に索引を追加する方法に関する項
属性に索引を追加するには:
- 「Oracle Directory Services Managerを使用した新規属性の追加」または「ldapmodifyを使用した属性の追加と変更」で説明されているように、属性を作成します。
- 「新規属性タイプ」ダイアログ・ボックスの「索引付け」ボックスを選択します。
21.2.12 Oracle Directory Services Managerを使用して既存属性に索引を追加する方法に関する項
Oracle Directory Services Managerでは、既存の属性がまだ使用されていない場合にのみその属性に索引を追加できます。
既存の属性に索引を追加するには:
- 「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
- タスク選択バーで、「スキーマ」を選択します。
- 現在索引付けされていない、索引の追加先の属性を選択します。
- 「属性がカタログ化/カタログから削除されます。」アイコンをクリックします。確認ダイアログが表示された後、「確認」をクリックします。
- 「索引付け」ボックスに属性が索引付けされたことが示されます。
21.2.13 Oracle Directory Services Managerを使用して属性から索引を削除する方法に関する項
属性から索引を削除するには:
- 「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
- タスク選択バーで、「スキーマ」を選択します。
- 現在索引付けされており、索引の削除対象の属性を選択します。
- 「属性がカタログ化/カタログから削除されます。」アイコンをクリックします。確認ダイアログが表示された後、「確認」をクリックします。
- 「索引付け」ボックスに、属性がもう索引付けされていないことが示されます。
21.2.16 Oracle Directory Services Managerを使用した一致規則の表示
ノート:
一致規則は変更できません。
- 「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
- タスク選択バーで、「スキーマ」を選択します。
- 「一致ルール」リストを展開します。リストに一致規則が表示されます。
- オブジェクト・クラスを検索する場合と同様に検索フィールドにキーワードを入力して、一致規則を検索できます。「Oracle Directory Services Managerを使用したオブジェクト・クラスの検索」を参照してください。
- 一致規則を選択し、右側の「一致ルール」タブ・ページにその詳細を表示します。
21.2.17 Oracle Directory Services Managerを使用した構文の表示
ノート:
構文は変更できません。
Oracle Directory Services Managerを使用して構文を表示するには:
- 「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
- タスク選択バーで、「スキーマ」を選択します。
- 「構文」リストを展開します。リストに構文名が表示されます。
- 構文を選択し、右側の「構文」タブ・ページにその詳細を表示します。
21.3 コマンドラインを使用したディレクトリ・スキーマの管理
コマンドライン・ユーティリティを使用して、スキーマの表示、新規オブジェクト・クラスの追加、補助型オブジェクト・クラスへの新規属性の追加などを行うことができます。
この項では、次の項目について説明します。
21.3.1 ldapsearchを使用したスキーマの表示
次のように入力して、スキーマをファイルに書き込むことができます。
ldapsearch -h OID_host -p OID_port -q -L -D "cn=orcladmin" \ -b "cn=subschemasubentry" -s base "objectclass=*" > schema.ldif
21.3.2 コマンド行ツールを使用した新規オブジェクト・クラスの追加
この例では、LDIF入力ファイルnew_object_class.ldif
に、次のようなデータが含まれています。
dn: cn=subschemasubentry changetype: modify add: objectclasses objectclasses: ( 2.16.840.1.113894.9999.12345 NAME 'myobjclass' SUP top STRUCTURAL MUST ( cn $ sn ) MAY ( telephonenumber $ givenname $ myattr ) )
左右のカッコとオブジェクト識別子の間には、必ず空白を入れてください。
このファイルをロードするには、次のコマンドを入力します。
ldapmodify -D "cn=orcladmin" -q -h myhost -p 3060 -f new_object_class.ldif
この例では、次の操作を行います。
-
structuralオブジェクト・クラス
myobjclass
を追加します。 -
オブジェクト識別子に
2.16.840.1.113894.9999.12345
を指定します。 -
スーパークラスとして
top
を指定します。 -
必須属性として
cn
とsn
を指定します。 -
オプション属性として
telephonenumber
、givenname
およびmyattr
を許可します。
記述されている属性すべてが、コマンドの実行前に存在している必要があることに注意してください。
abstractオブジェクト・クラスを作成するには、前出の例に従い、語句STRUCTURAL
を語句ABSTRACT
で置き換えます。
21.3.3 コマンド行ツールを使用した補助型またはユーザー定義のオブジェクト・クラスへの新規属性の追加
補助型オブジェクト・クラスまたはユーザー定義の構造型オブジェクト・クラスに新規属性を追加するには、ldapmodify
を使用します。この例では、複合変更操作で、古いオブジェクト・クラス定義を削除して新規の定義を追加します。変更はディレクトリ・サーバーによって1回のトランザクションでコミットされます。既存のデータは影響されません。入力ファイルには次のように指定します。
dn: cn=subschemasubentry changetype: modify delete: objectclasses objectclasses: old value - add: objectclasses objectclasses: new value
たとえば、既存のオブジェクト・クラスcountry
に属性changes
を追加する場合、入力ファイルは次のようになります。
dn: cn=subschemasubentry changetype: modify delete: objectclasses objectclasses: ( 2.16.840.1.113894.9999.12345 NAME 'country' SUP top STRUCTURAL MUST c MAY ( searchGuide $ description ) ) - add: objectclasses objectclasses: ( 2.16.840.1.113894.9999.12345 NAME 'country' SUP top STRUCTURAL MUST c MAY ( searchGuide $ description $ changes ) )
このファイルをロードするには、次のコマンドを入力します。
ldapmodify -D "cn=orcladmin" -q -h myhost -p 3060 -f new_attribute.ldif
21.3.4 コマンド行ツールを使用したオブジェクト・クラスの変更
スキーマ・コンポーネントを追加または変更するには、ldapmodify
を使用します。
関連項目:
『Oracle Fusion Middleware Oracle Identity Managementリファレンス』のldapmodifyコマンド行ツールのリファレンス。
21.3.5 ldapmodifyを使用した属性の追加と変更
ldapmodify
を使用して新規属性をスキーマに追加するには、システム・プロンプトで次のようなコマンドを入力します。
ldapmodify -D "cn=orcladmin" -q -h host -p port -f ldif_file_name
LDIFファイルには、次のようなデータが含まれています。
dn: cn=subschemasubentry changetype: modify add: attributetypes attributetypes: ( 1.2.3.4.5 NAME 'myattr' SYNTAX '1.3.6.1.4.1.1466.115.121.1.38' )
属性を単一値として指定するには、LDIFファイルの属性定義エントリに、空白で囲んだキーワードSINGLE-VALUEを含めます。
Oracle Directory Services Managerまたはldapsearchコマンド行ツールを使用して、指定した構文のオブジェクトIDを検索できます。
関連項目:
-
ldapmodifyとそのオプションの詳細は、『Oracle Fusion Middleware Oracle Identity Managementリファレンス』の
ldapmodify
コマンド行ツールのリファレンスを参照してください -
Oracle Directory Services Managerまたは
ldapsearch
を使用した構文の表示方法は、「ldapsearchを使用した構文の表示」を参照してください
21.3.6 ldapmodifyを使用した属性の削除
ノート:
削除できるのはユーザー定義属性のみです。ベース・スキーマの属性は削除しないでください。
ldapmodifyを使用して属性を削除するには、システム・プロンプトで次のようなコマンドを入力します。
ldapmodify -D "cn=orcladmin" -q -h host -p port -f ldif_file_name
LDIFファイルには、次のようなデータが含まれています。
dn: cn=subschemasubentry changetype: modify delete: attributetypes attributetypes: ( 1.2.3.4.5 NAME 'myattr' SYNTAX '1.3.6.1.4.1.1466.115.121.1.38' )
Oracle Directory Services Managerまたはldapsearchコマンド行ツールを使用して、指定した構文のオブジェクトIDを検索できます。
関連項目:
-
ldapmodifyとそのオプションの詳細は、『Oracle Fusion Middleware Oracle Identity Managementリファレンス』の
ldapmodify
コマンド行ツールのリファレンスを参照してください -
構文の表示方法は、「ldapsearchを使用した構文の表示」または「Oracle Directory Services Managerを使用した構文の表示」を参照してください
21.3.7 ldapmodifyを使用した属性の索引付け
Oracle Internet Directory 11g リリース1(11.1.1.6.0)では、新規インストールで新しい自動カタログ機能がデフォルトで有効になります。以前のリリースからアップグレードした場合も、これを有効にできます。この機能を有効にすると、属性を検索したときに、Oracle Internet Directoryで自動的にcatalog
コマンドが起動され、属性が索引付けされます。自動カタログ機能を有効化しないで、カタログ化されていない以前の属性を検索フィルタで使用する場合は、以前のリリースと同様に、その属性をカタログ・エントリに追加する必要があります。
ldapmodify
を使用して、カタログ・エントリに属性を追加できます。
属性を追加するには、ldapmodify
を使用してLDIFファイルをインポートします。たとえば、属性displayName
を索引付けするには、ldapmodifyを使用して次のLDIFファイルをインポートします。
dn: cn=catalogs changetype: modify add: orclindexedattribute orclindexedattribute: displayName
システム・プロンプトで次のようなコマンドを入力します。
ldapmodify -D "cn=orcladmin" -q -h host -p port -f ldif_file_name
属性を索引付けするために、ldapmodify
コマンドでカタログ管理ツールcatalog
が起動されます。このツールの詳細は、「catalogを使用した既存の属性の索引の作成および削除」を参照してください。
21.3.8 ldapmodifyを使用した属性からの索引の削除
ldapmodify
を使用して属性から索引を削除するには、LDIFファイルでdelete
を指定します。次に例を示します。
dn: cn=catalogs changetype: modify delete: orclindexedattribute orclindexedattribute: displayName
関連項目:
『Oracle Fusion Middleware Oracle Identity Managementリファレンス』のldapmodify
コマンド行ツールのリファレンス。
21.3.9 カタログ管理ツールを使用した属性の索引付け
ldapmodify
のかわりにカタログ管理ツールを使用して、属性に索引付けしたり、属性から索引を削除することができます。「catalogを使用した既存の属性の索引の作成および削除」を参照してください。
関連項目:
『Oracle Fusion Middleware Oracle Identity Managementリファレンス』のcatalog
コマンド行ツールのリファレンス。
ノート:
Oracle Internet Directoryでインストールされたベース・スキーマによって作成された索引ではないことが確信できない場合は、catalog delete=T
オプションを使用して属性から索引を削除しないように注意してください。ベース・スキーマ属性から索引を削除すると、Oracle Internet Directoryの操作に悪影響を及ぼす場合があります。
21.3.10 コマンド行を使用した複数の属性別名を持つ新規属性の追加
LDIFファイルを作成し、ldapmodify
を次の構文で使用することにより、属性別名の追加、変更または削除を行います。
ldapmodify -D "cn=orcladmin" -q -h host -p port -f ldif_file_name
ノート:
識別名は属性ではありません。スキーマ内ではdn
を定義できません。したがって、dn
の別名を作成できません。
次のLDIFファイルでは、複数の属性別名myalias1
とmyalias2
を持つ属性myattr
を追加します。
dn: cn=subschemasubentry changetype: modify add: attributetypes attributetypes: ( 1.2.3.4.5 NAME ( 'myattr' 'myalias1' 'myalias2' ) SYNTAX '1.3.6.1.4.1.1466.115.121.1.38' )
21.3.11 コマンド行を使用した既存の属性の属性別名の追加または変更
次のLDIFファイルでは、属性別名surname
とmysurName
を、既存の属性sn
に追加します。
dn: cn=subschemasubentry changetype: modify delete: attributeTypes attributeTypes: ( 2.5.4.4 NAME 'sn' SUP name ) - add: attributeTypes attributeTypes: ( 2.5.4.4 NAME ( 'sn' 'surname' 'mysurName' ) SUP name )
システム・プロンプトで次のようなコマンドを入力します。
ldapmodify -D "cn=orcladmin" -q -h host -p port -f ldif_file_name
21.3.12 コマンド行を使用した属性別名の削除
属性別名の削除にはldapmodify
コマンドを使用します。次のLDIFファイルでは、属性sn
から属性別名mysurName
は削除しますが、属性別名surName
は削除しません。
dn: cn=subschemasubentry changetype: modify delete: attributeTypes attributeTypes: ( 2.5.4.4 NAME ( 'sn' 'surname' 'mysurName' ) SUP name ) - add: attributeTypes attributeTypes: ( 2.5.4.4 NAME ( 'sn' 'surname' ) SUP name )
次のLDIFファイルでは、属性別名のsurname
とmysurName
の両方を属性sn
から削除します。
dn: cn=subschemasubentry changetype: modify delete: attributeTypes attributeTypes: ( 2.5.4.4 NAME ( 'sn' 'surname' 'mysurName' ) SUP name ) - add: attributeTypes attributeTypes: ( 2.5.4.4 NAME 'sn' SUP name )
21.3.13 属性別名とLDAPコマンドの使用方法
LDAPスキーマで属性別名を定義した後、ユーザーはLDAP操作で属性名に別名を代入できます。次の例は、使用するコマンドと予想される結果を示します。
表21-1は、例で使用されている別名と、別名が表す属性名を示しています。
表21-1 例で使用されている属性別名
別名 | 属性名 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21.3.13.1 属性別名とldapsearchの使用方法
LDAPサーバーは、ldapsearch
操作で、検索フィルタ文字列、ベース識別名、必須属性リスト内の属性別名を認識します。ユーザーが必須属性リストを使用して別名を明示的に要求しなければ、検索結果には実際の属性名が含まれます。たとえば、ユーザーが、ベース識別名で別名organizationalUnit
、country
およびorganization
を、フィルタ文字列で別名surname
を使用して、次の検索を指定するとします。
ldapsearch -p 3060 -h myhost \ -b "organizationalUnit=dev,country=us,organization=myorg" \ -s sub "surname=brown"
検索は次のような結果を返します。
uid=mbrown,ou=dev,c=us,o=myorg uid=mbrown sn=Brown cn=Mark Brown telephonenumber;office=444006 telephonenumber;mobile=555006 objectclass=organizationalPerson objectclass=top objectclass=person
次に、ユーザーが、別名surname
、commonname
およびuserid
を次のように必須属性リストに含めることにより、明確に別名を要求するとします。
ldapsearch -p 3060 -h myhost \ -b "organizationalUnit=dev,country=us,organization=myorg" \ -s sub "surname=brown" surname commonname userid phone
ユーザーが別名を明確に含めたので、検索は次のような結果を返します。
uid=mbrown,ou=dev,c=us,o=myorg surname=Brown commonname=Mark Brown userid=mbrown phone;office=444006 phone;mobile=555006
21.3.13.2 属性別名とldapaddの使用方法
LDAPサーバーは、追加操作中に、属性名のかわりに属性別名を認識します。LDAPサーバーはエントリを保存する際、別名を実際の属性名に置換します。
コマンド行の書式は、次のとおりです。
ldapadd -h host -p port -D cn=orcladmin -q -f ldif_file_name
ユーザーはLDIFファイルを次のように指定できます。
dn: userid=mbrown,organizationalUnit=dev,country=us,organization=myorg objectclass: account objectclass: organizationalPerson userID: mbrown surname: Brown commonName: Mark Brown userpassword: password phone;office: 444006 phone;mobile: 555006
エントリは、ファイルに別名のかわりに属性名が含まれているかのように保存されます。ただし、後続のLDAP検索では、追加または変更時に識別名が入力されたので、識別名が返されます。
dn: userid=mbrown,organizationalUnit=dev,country=us,organization=myorg
これはLDAP検索結果を得るための標準動作です。識別名は常に、エントリの作成時に使用されたものと同じ書式で返されます。
21.3.13.3 属性別名とldapmodifyの使用方法
LDAPサーバーは、変更操作中に、属性名のかわりに属性別名を認識します。
コマンド行の書式は、次のとおりです。
ldapmodify -D "cn=orcladmin" -q -h host -p port -f ldif_file_name
ユーザーはLDIFファイルを次のように指定できます。
dn: userid=mbrown,organizationalUnit=dev,country=us,organization=myorg changetype: modify replace: surname surname: davis
エントリは、ファイルに別名のかわりに属性名が含まれているかのように保存されます。ただし、後続のLDAP検索では、追加または変更時に識別名が入力されたので、識別名が返されます。
dn: userid=mbrown,organizationalUnit=dev,country=us,organization=myorg
これはLDAP検索結果を得るための標準動作です。識別名は常に、エントリの作成時に使用されたものと同じ書式で返されます。
21.3.13.4 属性別名とldapdeleteの使用方法
LDAPサーバーは、削除操作に指定された識別名で属性別名を認識します。たとえば、ユーザーが次のように検索フィルタで別名userid
、organizationalUnit
、country
およびorganization
を指定してリクエストをするとします。
ldapdelelete -D "cn=orcladmin" -q -p 3060 \ -h myhost "userid=mbrown,organizationalUnit=dev,country=us,organization=myorg"
サーバーは、ユーザーが次のように入力したものとしてエントリを削除します。
ldapdelelete -D "cn=orcladmin" -q -p 3060 \ -h myhost "uid=mbrown,ou=dev,c=us,o=myorg"
21.3.13.5 属性別名とldapmoddnの使用方法
LDAPサーバーは、識別名、新規相対識別名および新規親識別名のオプションで、属性別名を認識します。たとえば、ユーザーが次のコマンド行を入力するとします。
ldapmoddn -D "cn=orcladmin" -q \ -b "userid=mbrown,organizationalUnit=dev,country=us,organization=myorg"\ -R "userid=mdavis"
LDAPサーバーは、コマンド行をユーザーが次のように入力しものとして解釈します。
ldapmoddn -D "cn=orcladmin" -q -b "uid=mbrown,ou=dev,c=us,o=myorg" \ -R "uid=mdavis"
エントリは、ファイルに別名のかわりに属性名が含まれているかのように保存されます。ただし、後続のLDAP検索では、追加または変更時に識別名が入力されたので、識別名が返されます。
dn: userid=mbrown,organizationalUnit=dev,country=us,organization=myorg
これはLDAP検索結果を得るための標準動作です。識別名は常に、エントリの作成時に使用されたものと同じ書式で返されます。
21.3.14 コマンド行ツールを使用したコンテンツ・ルールの管理
コンテンツ・ルールの形式は次のとおりです。
DITContentRule ::= SEQUENCE {
oids ALPHA-NUMERIC-OID, structuralObjectClass OBJECT-CLASS, LABEL CONTENT-LABEL OPTIONAL, auxiliaries SET (1..MAX) OF OBJECT-CLASS OPTIONAL, mandatory SET (1..MAX) OF ATTRIBUTE OPTIONAL, optional SET (1..MAX) OF ATTRIBUTE OPTIONAL, precluded SET (1..MAX) OF ATTRIBUTE OPTIONAL }
ldapmodify
で次のようなLDIFファイルを指定してコンテンツ・ルールを追加できます。
dn: cn=subschemasubentrychangetype: modify add: contentrules contentrules: ( 2.16.840.1.113894.9999.1.1 OBJECTCLASS 'exampleObjClassName' LABEL abc AUX exampleAuxObjClassName MUST businessCategory MAY ( description $ host ) )
次の各項では、コンテンツ・ルール・パラメータについて説明します。属性およびオブジェクト・クラスの名前では、大文字と小文字が区別されることに注意してください。
-
oids
オブジェクト・クラスまたは属性定義のオブジェクト識別子と同様の、コンテンツ・ルールの一意のオブジェクト識別子(oids)。これは、2.16.840.1.113894で始まり、その後ろに.9999またはサイト固有の接頭辞が続いている一意な数値である必要があります。
-
LABEL
ディレクトリで適用されるコンテンツ・ルールのコンテンツ・ラベル。
-
structuralObjectClass
コンテンツ・ルールが適用される構造型オブジェクト・クラス。
-
auxiliaries
コンテンツ・ルールが適用されるエントリで使用可能な補助型オブジェクト・クラス。
-
mandatory
コンテンツ・ルールが適用されるエントリに含まれるユーザー属性タイプ。これは、指定された構造型および補助型オブジェクト・クラスとの関連付けの結果としてエントリに含まれる必須属性に対する追加の属性です。
-
optional
コンテンツ・ルールが適用されるエントリに含めることができるユーザー属性タイプ。これは、指定された構造型および補助型オブジェクト・クラスとの関連付けの結果としてエントリに含めることができる属性に対する追加の属性です。
21.3.15 ldapsearchを使用した一致規則の表示
ノート:
一致規則は変更できません。
一致規則を表示するには、次のように入力します。
ldapsearch -L -D "cn=orcladmin" -p port -q -b "cn=subschemasubentry" -s base "objectclass=*" matchingrules
関連項目:
『Oracle Fusion Middleware Oracle Identity Managementリファレンス』のldapsearch
コマンド行ツールのリファレンス。
21.3.16 ldapsearchを使用した構文の表示
ノート:
構文は変更できません。
構文を表示するには、次のように入力します。
ldapsearch -L -D "cn=orcladmin" -p port -q -b "cn=subschemasubentry" -s base "objectclass=*" ldapsyntaxes
関連項目:
『Oracle Fusion Middleware Oracle Identity Managementリファレンス』のldapsearch
コマンド行ツールのリファレンス。