21 ディレクトリ・スキーマの管理

この章では、Oracle Directory Services Manager (ODSM)およびLDAPコマンド行ユーティリティを使用して、ディレクトリ・スキーマでOracle Internet Directoryのオブジェクト・クラスと属性を管理する方法について説明します。

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=subschemasubentrycn=userdefined2,cn=subschemasubentryなど、アプリケーションによって定義されたsubSchemaSubentryエントリをいくつか示しています。

ベスト・プラクティスは、アプリケーションまたはアプリケーションのグループごとにsubschemasubentryの下に1つの下位エントリを作成することです。アプリケーションに関連するすべてのattributeTypesおよびobjectClassesは、cn=subschemasubentryの下の対応するエントリの下に配置する必要があります。

スキーマ・エントリはすべて、ルートDSE属性subschemasubentryに示されています。

図21-1 subSchemaSubentryタイプのエントリでのスキーマ・コンポーネントの位置

この図はテキストで説明します。

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オブジェクト・クラスは、そのスーパークラスとして、toppersonおよびorganizationalPersonを持っています。ある人物を表すエントリを作成する場合、オブジェクト・クラスとして指定する必要があるのはinetOrgPersonのみです。Oracle Internet Directoryは、各スーパークラスtoppersonおよびorganizationalPersonによって定義されたスキーマ制約を適用します。

21.1.3.2 オブジェクト・クラスの追加

オブジェクト・クラスを追加するときは、次の点に注意してください。

  • すべての構造型オブジェクト・クラスには、スーパークラスとしてtopを設定する必要があります。

  • オブジェクト・クラスの名前とオブジェクト識別子は、すべてのスキーマ・コンポーネントを通して一意であることが必要です。実際の属性名と属性名の別名は、すべての属性名と属性別名を通して一意であることが必要です。オブジェクト識別子は一意の識別子、2.16.840.1.113894で始まり、その後ろにOracle指定の接頭辞.9999か、サイト固有の接頭辞が続いている必要があります。

  • オブジェクト・クラスで参照されるスキーマ・コンポーネント(スーパークラスなど)は、すでに存在している必要があります。

  • 抽象型オブジェクト・クラスの場合は、スーパークラスも抽象型であることが必要です。

  • スーパークラスの必須属性は、新規オブジェクト・クラスでオプション属性に再定義することが可能です。同様に、スーパークラスのオプション属性は、新規オブジェクト・クラスで必須属性に再定義できます。

    関連項目:

    これらの用語の概念の説明は、「サブクラス、スーパークラスおよび継承」を参照してください

21.1.3.3 既存のオブジェクト・クラスに対する変更のタイプ

既存のオブジェクト・クラスに対する変更は、Oracle Directory Services Managerおよびコマンド行ツールを使用して実行できます。

オブジェクト・クラスに対しては、次の変更を次の方法で実行できます。

  • 必須属性からオプション属性への変更

  • オプション属性の追加

  • スーパークラスの追加

  • 抽象型オブジェクト・クラスから構造型または補助型オブジェクト・クラスへの変換(その抽象型オブジェクト・クラスが、別の抽象型オブジェクト・クラスのスーパークラスではない場合)

オブジェクト・クラスを変更するときは、次のガイドラインに注意してください。

  • 標準のLDAPスキーマの一部であるオブジェクト・クラスは変更できません。ユーザー定義のオブジェクト・クラスは変更できます。

  • 必要な属性が既存のオブジェクト・クラスに設定されていない場合は、補助型オブジェクト・クラスを作成して、必要な属性をそのオブジェクト・クラスに関連付けることができます。

  • 既存のオブジェクト・クラスに、必須属性を追加できません。

  • ベース・スキーマのオブジェクト・クラスは変更できません。

  • 既存のオブジェクト・クラスから属性またはスーパークラスを削除できません。

  • 構造型オブジェクト・クラスは、他の型のオブジェクト・クラスに変換できません。

  • エントリがすでに関連付けられているオブジェクト・クラスは変更しないでください。

21.1.3.4 オブジェクト・クラスの削除に関する制限事項

オブジェクト・クラスの削除に関する制限事項は、次のとおりです。

  • ベース・スキーマからオブジェクト・クラスを削除できません。

  • ベース・スキーマ内にないオブジェクト・クラスは、他のスキーマ・コンポーネントから直接または間接的に参照されていないかぎり削除できます。たとえば、このようなオブジェクト・クラスを参照するディレクトリ・エントリがいくつか存在するとします。このオブジェクト・クラスを削除すると、これらのエントリにはアクセスできなくなります。

21.1.4 属性の理解

属性を追加、変更または削除する方法について説明します。

この項では、次のトピックについて説明します。

21.1.4.1 属性の概要

属性を扱う操作を実行する前に、概念的な観点から属性を理解する必要があります。

多くの場合、ベース・スキーマにある属性で、ユーザーの組織のニーズを満たすことができます。ベース・スキーマにない属性を使用する場合は、新規属性の追加または既存属性の変更が可能です。

デフォルトでは、属性は複数値です。Oracle Directory Services Managerまたはコマンド行ツールを使用して、属性を単一値に指定できます。

ノート:

非バイナリ属性の最大長は4000バイトです。

関連項目:

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オブジェクト・クラスといくつかの専用オブジェクト・クラスを用意します。この事前に定義されたオブジェクト・クラスに属している属性のセットには、必須属性を追加できません。エントリに必要なすべての属性が所定のオブジェクト・クラスに含まれていない場合には、次のうちのいずれかを行います。

21.1.5.3 補助型オブジェクト・クラスの作成によって既存エントリの属性数を拡大するための仕様

エントリに必要な追加属性を含む補助型オブジェクト・クラスを作成し、その補助型オブジェクト・クラスをエントリと関連付けることができます。補助型オブジェクト・クラスをエントリと関連付けるには、エントリのobjectclass属性でそれを指定します。

関連項目:

21.1.5.4 コンテンツ・ルールの作成によって既存エントリの属性数を拡大するための仕様

コンテンツ・ルールは、仕様に従って、特定の構造型オブジェクト・クラスと関連付けられたエントリで使用されるコンテンツの種類を決定します。たとえば、personオブジェクト・クラスと関連付けられたエントリは、そのオブジェクト・クラスの属性だけでなく、他の属性も持つ必要があることを指定できます。追加属性は、補助型オブジェクト・クラスの必須またはオプションの属性にできます。

エントリには補助型クラスをリストする必要があります(これはかなりの管理負荷になることがあります)が、コンテンツ・ルールをリストする必要はありません。

コンテンツ・ルールには、コンテンツ・ルールが適用される構造型オブジェクト・クラスだけでなく、次のものも含めることができます。

  • 規則によって制御されるエントリで使用可能な補助型オブジェクト・クラス

  • 構造型および補助型オブジェクト・クラスに必要な属性に加え、DITコンテンツ・ルールによって制御されるエントリで必要な必須属性

  • 構造型および補助型オブジェクト・クラスに必要な属性に加え、DITコンテンツ・ルールによって制御されるエントリで使用可能なオプション属性

この項では、Oracle Directory Services Managerおよびコマンド行ツールを使用してコンテンツ・ルールを管理する方法を説明します。

新しいコンテンツ・ルールの定義中に、ディレクトリ・サーバーは構文を検証し、コンテンツ・ルールにリストされた属性およびオブジェクト・クラスがディレクトリで定義済であることを確認します。

コンテンツ・ルールは、構造型オブジェクト・クラスに対してのみ指定できます。オブジェクト・クラスの名前では、大文字と小文字が区別されます。

各構造型オブジェクト・クラスに複数のコンテンツ・ルールを指定できます。ただし、コンテンツ・ルールは、オブジェクト・クラスごとに異なるラベルで関連付ける必要があります。

コンテンツ・ルールの既存の定義を変更する場合、クライアントは既存の定義を削除した後で、新しい定義を追加する必要があります。replaceコマンドを使用してコンテンツ・ルールを単純に置き換えることはできません。

コンテンツ・ルールを削除する場合、クライアントは構造型オブジェクト・クラスおよびコンテンツ・ルールの英数字のオブジェクト識別子のみを指定する必要があります。オプションで、削除するコンテンツ・ルールの関連バージョンを指定することもできます。

21.1.5.5 コンテンツ・ルールを作成および変更するための規則

コンテンツ・ルールは、サブスキーマ・サブエントリ(cn=subschemasubentry)のDITContentRule属性の値として定義されます。これらは、次の規則に準拠する必要があります。

  • エントリの構造型オブジェクト・クラスは、エントリに適用可能なコンテンツ・ルールを識別します。構造型オブジェクト・クラスに対するコンテンツ・ルールが存在しない場合、そのオブジェクト・クラスと関連付けられたエントリには、構造型オブジェクト・クラス定義によって許可された属性のみが含まれます。

  • コンテンツ・ルールは構造型オブジェクト・クラスと関連付けられるため、同じ構造型オブジェクト・クラスのすべてのエントリが、DITでの位置に関係なく、同じコンテンツ・ルールを持ちます。

  • エントリのコンテンツは、そのエントリのobjectClass属性にリストされたオブジェクト・クラスの一貫性を維持している必要があります。具体的には、次の条件を満たしている必要があります。

21.1.5.6 コンテンツ・ルール使用時のスキーマ制約

スキーマ整合性についてオブジェクトを検証する場合、ディレクトリ・サーバーはエントリの構造型オブジェクト・クラスのコンテンツ・ルールを使用します。また、エントリにリストされたその他すべてのオブジェクト・クラスも使用します。

オブジェクト・クラスに複数のコンテンツ・ルールが存在する場合は、エントリの追加または変更時、あるいはデータのバルク・ロード時に、次の規則が適用されます。

  • エントリには、各種コンテンツ・ルールにリストされたすべての補助型オブジェクト・クラスからの属性を含めることができます。コンテンツ・ルールにオブジェクト・クラスが指定されていない場合、クライアントは、制限なくディレクトリ・エントリの補助型オブジェクト・クラスを明示的に追加できます。

  • エントリには、次のものにリストされたすべての必須属性の値を含める必要があります。

    • コンテンツ・ルール

    • エントリと関連付けられたオブジェクト・クラス

    • エントリに適用可能なコンテンツ・ルールにリストされた補助型オブジェクト・クラス

  • オプションで、次のものにリストされたオプション属性の一部またはすべての値をエントリに含めることができます。

    • コンテンツ・ルール

    • エントリにリストされたオブジェクト・クラス

    • エントリに適用可能なコンテンツ・ルールにリストされた補助型オブジェクト・クラス

  • 必須と指定された属性は、その属性をオプションと定義する他のすべての定義をオーバーライドします。

21.1.5.7 コンテンツ・ルールにリストされたオブジェクト・クラスの検索

コンテンツ・ルールにリストされた補助型オブジェクト・クラスは、エントリのobjectclass属性にリストされないため、それらのオブジェクト・クラスをエントリ検索時にフィルタとしてリストすることはできません。かわりに、関連する構造型オブジェクト・クラスに基づいて検索します。補助型オブジェクト・クラスに基づいて検索する必要がある場合は、その補助型オブジェクト・クラスをユーザー・オブジェクトのobjectclass属性に明示的に追加します。

たとえば、構造型オブジェクト・クラスinetOrgPersonのコンテンツ・ルールは、補助型オブジェクト・クラスorclUserを指定できます。ただし、これは、ディレクトリ内のすべてのinetOrgPersonエントリにorclUserobjectclass属性の値として含まれることを意味しません。したがって、フィルタ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.1.7 LDAP操作でのオブジェクト識別子のサポート

属性名のオブジェクト識別子を置き換える方法について説明します。

ユーザーは、属性別名と同じように、属性名のかわりにオブジェクト識別子を使用できます。

21.2 Oracle Directory Services Managerを使用したディレクトリ・スキーマの管理

Oracle Directory Services Managerを使用し、オブジェクト・クラスに対して検索、追加、削除など様々な操作を行うことができます。

この項では、次の項目について説明します。

21.2.1 Oracle Directory Services Managerを使用したオブジェクト・クラスの検索

Oracle Directory Services Managerを使用してオブジェクト・クラスを検索するには:

  1. 「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
  2. タスク選択バーで、「スキーマ」を選択します。
  3. 左側の「オブジェクト・クラス」パネルを展開します。
  4. 「検索」フィールドにキーワードを入力し、「実行」をクリックします。キーワードと一致するオブジェクト・クラスのリストが左側のパネルに表示されます。

    ワイルドカードとして"*"および"?"を使用できます。たとえば、*personと入力すると、検索によってpersonで終わるすべてのオブジェクト・クラスが返されます。

    検索を終了し、オブジェクト・クラスの全一覧に戻るには、「検索テキストのクリア」を選択します。

21.2.2 Oracle Directory Services Managerを使用したオブジェクト・クラスの追加

Oracle Directory Services Managerを使用してオブジェクト・クラスを追加するには:

  1. 「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
  2. タスク選択バーで、「スキーマ」を選択します。
  3. 左側の「オブジェクト・クラス」パネルを展開し、ツールバーの「作成」を選択します。「新規オブジェクト・クラス」ダイアログ・ボックスが表示されます。

    または、「オブジェクト・クラス」パネルで、作成するオブジェクト・クラスに類似しているオブジェクト・クラスを選択した後、「類似作成」を選択する方法もあります。「新規オブジェクト・クラス」ダイアログ・ボックスに選択したオブジェクト・クラスの属性が表示されます。このオブジェクト・クラスをテンプレートとして使用して、新規のオブジェクト・クラスを作成できます。

  4. 「新規オブジェクト・クラス」ダイアログ・ボックスで、フィールドに情報を入力します。
  5. 「作成」を選択します。

関連項目:

21.2.3 Oracle Directory Services Managerを使用したオブジェクト・クラスの変更

すでにエントリで使用されているオブジェクト・クラスには、オプション属性は追加できますが、必須属性は追加できません。すでに使用されているオブジェクト・クラスにオプション属性を追加する場合、特別なルールは適用されず、属性は空の属性としてエントリに追加されます。

オブジェクト・クラスを変更するには:

  1. 「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
  2. タスク選択バーで、「スキーマ」を選択します。
  3. 左側の「オブジェクト・クラス」パネルを展開します。スクロールバーを使用して、オブジェクト・クラスのアルファベット順のリストを移動します。「Oracle Directory Services Managerを使用したオブジェクト・クラスの検索」に記載のように、オブジェクト・クラスを検索することもできます。
  4. 変更するオブジェクト・クラスをクリックします。ページの右側に「オブジェクト・クラス」タブが表示されます。
  5. スーパークラスまたは属性を追加または削除するには、「スーパークラス」「必須属性」または「オプション属性」リストで選択し、リストの上にあるツールバーの「追加」または「削除」を選択します

    「必須属性」ツールバーの「オプションの作成」を選択し、属性をオプションにします。

    スーパークラスまたは属性を編集するには、「スーパークラス」「必須属性」または「オプション属性」リストで選択し、「編集」を選択します。「オブジェクト・クラス」または「属性」ダイアログが表示されます。これを使用してスーパークラスまたは属性を変更します。「オブジェクト・クラス」ダイアログで、スーパークラス、あるいはスーパークラスの必須属性またはオプション属性を追加、削除または編集できます。変更後、各ダイアログで「OK」をクリックします。

  6. 「オブジェクト・クラス」ページで「適用」を選択して変更を適用するか、「元に戻す」を選択して変更を破棄します。

    ノート:

    属性は、補助型オブジェクト・クラスまたはユーザー定義の構造型オブジェクト・クラスに追加できます。

    関連項目: 補助型オブジェクト・クラスへの属性の追加例は、「コマンド行ツールを使用した補助型またはユーザー定義のオブジェクト・クラスへの新規属性の追加」を参照してください

21.2.4 Oracle Directory Services Managerを使用したオブジェクト・クラスの削除

ノート:

ベース・スキーマからはオブジェクト・クラスを削除しないことをお薦めします。エントリの参照先であるオブジェクト・クラスを削除すると、そのエントリにアクセスできなくなります。

ベース・スキーマからオブジェクト・クラスを削除すると、Oracle Directory Services Managerの不具合の原因になることもあります。

Oracle Directory Services Managerを使用してオブジェクト・クラスを削除するには:

  1. 「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
  2. タスク選択バーで、「スキーマ」を選択します。
  3. 「オブジェクト・クラス」の横の「+」をクリックし、「オブジェクト・クラス」パネルを展開します。スクロールバーを使用して、「オブジェクト・クラス」のアルファベット順のリストを移動します。
  4. 削除するオブジェクト・クラスを選択します。
  5. ツールバーから「削除」を選択し、確認ダイアログ・ボックスで「削除」をクリックします。

21.2.5 Oracle Directory Services Managerを使用したオブジェクト・クラスのプロパティの表示

スキーマ内のすべてのオブジェクト・クラスを表示するには:

  1. 「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
  2. タスク選択バーで、「スキーマ」を選択します。
  3. 「オブジェクト・クラス」の横の「+」をクリックし、「オブジェクト・クラス」パネルを展開します。スクロールバーを使用して、「オブジェクト・クラス」のアルファベット順のリストを移動します。
  4. 表示するオブジェクト・クラスをクリックします。ページの右側に「オブジェクト・クラス」タブが表示されます。
  5. オブジェクト・クラスのスーパークラスまたは属性の詳細を表示するには、対象を選択して「編集」をクリックします。オブジェクト・クラス・パネルに戻るには、「取消」をクリックします。

21.2.6 Oracle Directory Services Managerを使用した新規属性の追加

新規属性を追加するには:

  1. 「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
  2. タスク選択バーで、「スキーマ」を選択します。
  3. 必要に応じて、左側の「属性」ペインを展開し、ツールバーの「作成」ボタンを選択します。「新規属性の型」ダイアログ・ボックスが表示されます。

    または、「属性」パネルで、作成する属性に類似している属性を選択した後、「類似作成」を選択する方法もあります。「新規属性の型」ダイアログ・ボックスに選択した属性の属性が表示されます。この属性をテンプレートとして使用して、新規の属性を作成できます。

    ヒント:

    等価、構文および一致規則は数が多く複雑であるため、これらの特性は、類似の既存属性からコピーすると作業が簡単になります。

  4. 各フィールドに値を入力します。
  5. 「適用」を選択します。

    ノート:

    この属性を使用するには、オブジェクト・クラスに対する属性セットの一部であることを必ず宣言してください。これは、「オブジェクト・クラス」ペインで実行します。詳細は、 「Oracle Directory Services Managerを使用したオブジェクト・クラスの変更」および「コマンド行ツールを使用したオブジェクト・クラスの変更」を参照してください。

21.2.7 Oracle Directory Services Managerを使用した属性の変更

Oracle Directory Services Managerを使用して属性を変更するには:

  1. 「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
  2. タスク選択バーで、「スキーマ」を選択します。
  3. 「属性」パネルで、変更する属性を選択します。右側に「属性」ページが表示されます。
  4. 属性タブで、必要に応じて編集可能なフィールド内の情報を変更または追加します。
  5. 「適用」を選択します。

21.2.8 Oracle Directory Services Managerを使用した属性の削除

ノート:

ベース・スキーマから属性またはオブジェクト・クラスを削除しないことをお薦めします。

ベース・スキーマから属性またはオブジェクト・クラスを削除すると、Oracle Directory Services Managerの不具合の原因になることがあります。

属性を削除するには:

  1. 「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
  2. タスク選択バーで、「スキーマ」を選択します。
  3. 「属性」パネルで、削除する属性を選択します。
  4. 左側のパネルのツールバーから「削除」を選択し、確認ダイアログ・ボックスで「削除」をクリックします。

21.2.9 Oracle Directory Services Managerを使用したすべてのディレクトリ属性の表示

Oracle Directory Services Managerを使用して属性を表示するには:

  1. 「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
  2. タスク選択バーで、「スキーマ」を選択します。
  3. 「属性」を展開します。
  4. 「属性」パネルでスクロールバーを使用してアルファベット順のリストを移動します。

    関連項目:

    特定のオブジェクト・クラスの属性を表示する方法は、「Oracle Directory Services Managerを使用したオブジェクト・クラスのプロパティの表示」を参照してください。

21.2.10 Oracle Directory Services Managerを使用した属性の検索

Oracle Directory Services Managerを使用して属性を検索するには:

  1. 「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
  2. タスク選択バーで、「スキーマ」を選択します。
  3. 左側のペインで「属性」リストを展開します。
  4. 左側のペインの「検索」フィールドに検索条件を入力します。アスタリスク(*)または疑問符(?)をワイルドカードとして使用できます。「実行」アイコンをクリックするか、キーボードの[Enter]を押します。
  5. 検索結果は左側のペインのリストに表示されます。検索を終了して属性の全一覧に戻るには、「検索テキストのクリア」アイコンをクリックします。

21.2.11 Oracle Directory Services Managerを使用して新規属性に索引を追加する方法に関する項

属性に索引を追加するには:

  1. 「Oracle Directory Services Managerを使用した新規属性の追加」または「ldapmodifyを使用した属性の追加と変更」で説明されているように、属性を作成します。
  2. 「新規属性タイプ」ダイアログ・ボックスの「索引付け」ボックスを選択します。

21.2.12 Oracle Directory Services Managerを使用して既存属性に索引を追加する方法に関する項

Oracle Directory Services Managerでは、既存の属性がまだ使用されていない場合にのみその属性に索引を追加できます。

既存の属性に索引を追加するには:

  1. 「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
  2. タスク選択バーで、「スキーマ」を選択します。
  3. 現在索引付けされていない、索引の追加先の属性を選択します。
  4. 「属性がカタログ化/カタログから削除されます。」アイコンをクリックします。確認ダイアログが表示された後、「確認」をクリックします。
  5. 「索引付け」ボックスに属性が索引付けされたことが示されます。

21.2.13 Oracle Directory Services Managerを使用して属性から索引を削除する方法に関する項

属性から索引を削除するには:

  1. 「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
  2. タスク選択バーで、「スキーマ」を選択します。
  3. 現在索引付けされており、索引の削除対象の属性を選択します。
  4. 「属性がカタログ化/カタログから削除されます。」アイコンをクリックします。確認ダイアログが表示された後、「確認」をクリックします。
  5. 「索引付け」ボックスに、属性がもう索引付けされていないことが示されます。

21.2.14 Oracle Directory Services Managerを使用したコンテンツ・ルールの作成

コンテンツ・ルールを作成するには:

  1. 「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
  2. タスク選択バーで、「スキーマ」を選択します。
  3. 左側のペインで「コンテンツ・ルール」リストを展開します。
  4. 「作成」を選択します。「新規コンテンツ・ルール」ダイアログ・ボックスが表示されます。
  5. 「新規コンテンツ・ルール」ダイアログ・ボックスの「構造化オブジェクト・クラス」および「オブジェクトID」フィールドに情報を追加します。オプションでラベルを追加します。

    「補助クラス」「必須属性」または「オプション属性」リストの上にあるツールバーの「追加」「削除」または「編集」アイコンを選択し、項目を追加または削除します。追加の場合、ダイアログから補助クラス、必須属性またはオプション属性を選択します。必要に応じて検索機能を使用します。

  6. または、「コンテンツ・ルール」パネルで、作成するコンテンツ・ルールに類似しているコンテンツ・ルールを選択した後、「類似作成」を選択する方法もあります。「新規コンテンツ・ルール」ダイアログ・ボックスに選択したコンテンツ・ルールの属性が表示されます。このコンテンツ・ルールをテンプレートとして使用して、新規のコンテンツ・ルールを作成できます。
  7. コンテンツ・ルールを追加するには、「OK」を選択します。

21.2.15 Oracle Directory Services Managerを使用したコンテンツ・ルールの変更

コンテンツ・ルールを変更するには:

  1. 「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
  2. タスク選択バーで、「スキーマ」を選択します。
  3. 左側のペインで「コンテンツ・ルール」リストを展開します。
  4. 変更するコンテンツ・ルールを選択します。オブジェクト・クラスを検索する場合と同様に検索フィールドにキーワードを入力して、コンテンツ・ルールを検索できます。「Oracle Directory Services Managerを使用したオブジェクト・クラスの検索」を参照してください。
  5. コンテンツ・ルール・タブの適切なフィールドで値を変更します。

    「補助クラス」「必須属性」または「オプション属性」リストの上にあるツールバーの「追加」「削除」または「編集」アイコンを選択し、項目を追加または削除します。追加の場合、ダイアログから補助クラス、必須属性またはオプション属性を選択します。必要に応じて検索機能を使用します。

  6. 「適用」を選択して変更を有効にするか、「元に戻す」を選択して変更を破棄します。

21.2.16 Oracle Directory Services Managerを使用した一致規則の表示

ノート:

一致規則は変更できません。

  1. 「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
  2. タスク選択バーで、「スキーマ」を選択します。
  3. 「一致ルール」リストを展開します。リストに一致規則が表示されます。
  4. オブジェクト・クラスを検索する場合と同様に検索フィールドにキーワードを入力して、一致規則を検索できます。「Oracle Directory Services Managerを使用したオブジェクト・クラスの検索」を参照してください。
  5. 一致規則を選択し、右側の「一致ルール」タブ・ページにその詳細を表示します。

21.2.17 Oracle Directory Services Managerを使用した構文の表示

ノート:

構文は変更できません。

Oracle Directory Services Managerを使用して構文を表示するには:

  1. 「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
  2. タスク選択バーで、「スキーマ」を選択します。
  3. 「構文」リストを展開します。リストに構文名が表示されます。
  4. 構文を選択し、右側の「構文」タブ・ページにその詳細を表示します。

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を指定します。

  • 必須属性としてcnsnを指定します。

  • オプション属性としてtelephonenumbergivennameおよび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を検索できます。

関連項目:

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を検索できます。

関連項目:

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ファイルでは、複数の属性別名myalias1myalias2を持つ属性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ファイルでは、属性別名surnamemysurNameを、既存の属性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ファイルでは、属性別名のsurnamemysurNameの両方を属性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 例で使用されている属性別名

別名 属性名

userid

uid

organizationalunit

ou

country

c

organization

o

surname

sn

commonname

cn

phone

telephonenumber

21.3.13.1 属性別名とldapsearchの使用方法

LDAPサーバーは、ldapsearch操作で、検索フィルタ文字列、ベース識別名、必須属性リスト内の属性別名を認識します。ユーザーが必須属性リストを使用して別名を明示的に要求しなければ、検索結果には実際の属性名が含まれます。たとえば、ユーザーが、ベース識別名で別名organizationalUnitcountryおよび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

次に、ユーザーが、別名surnamecommonnameおよび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サーバーは、削除操作に指定された識別名で属性別名を認識します。たとえば、ユーザーが次のように検索フィルタで別名useridorganizationalUnitcountryおよび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コマンド行ツールのリファレンス