Oracle Fusion Middleware Oracle Internet Directory管理者ガイド 11g リリース1(11.1.1) B55919-02 |
|
前 |
次 |
この章では、Oracle Internet Directoryのオブジェクト・クラスと属性を管理する方法を説明します。
この章の項目は次のとおりです。
ディレクトリ内のベース・スキーマの追加または変更を行う前に、ディレクトリのコンポーネントの基本概念を理解しておいてください。
ディレクトリ・スキーマには、次の機能があります。
ディレクトリに格納できるオブジェクトの種類に関する規則を含んでいます。
検索などの処理時にディレクトリ・サーバーとクライアントが情報を扱う方法の規則を含んでいます。
ディレクトリに格納されているデータの整合性と品質をメンテナンスするのに役立ちます。
データの重複を削減します。
ディレクトリに対応したアプリケーションがディレクトリ・オブジェクトにアクセスしたり変更したりするための、予測可能な方法を提供します。
注意: Oracle Internet Directoryのスキーマ・オブジェクトには、それぞれ特定の制限があります。たとえば、一部のオブジェクトは変更できません。これらの制限事項は、ここでは制約や規則として説明しています。 |
この項の項目は次のとおりです。
関連項目: Oracle Fusion Middleware Oracle Identity ManagementリファレンスのLDAPスキーマの概要に関する説明 |
ディレクトリ・スキーマには、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
を作成し、そこにスキーマ・コンポーネントを追加できます。図20-1は、cn=userdefined1,cn=subschemasubentry
やcn=userdefined2,cn=subschemasubentry
など、アプリケーションによって定義されたsubSchemaSubentry
エントリをいくつか示しています。
ベスト・プラクティスは、アプリケーションまたはアプリケーションのグループごとにsubschemasubentry
の下に1つの下位エントリを作成することです。アプリケーションに関連するすべてのattributeTypesおよびobjectClassesは、cn=subschemasubentry
の下の対応するエントリの下に配置する必要があります。
スキーマ・エントリはすべて、ルートDSE属性subschemasubentry
に示されています。
subSchemaSubentry
エントリの追加には、bulkload
を使用できません。ldapadd
を使用する必要があります。
エントリを追加する場合は、そのエントリを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
によって定義されたスキーマ制約を適用します。
オブジェクト・クラスを追加するときは、次の点に注意してください。
すべての構造型オブジェクト・クラスには、スーパークラスとしてtop
を設定する必要があります。
オブジェクト・クラスの名前とオブジェクト識別子は、すべてのスキーマ・コンポーネントを通して一意であることが必要です。実際の属性名と属性名の別名は、すべての属性名と属性別名を通して一意であることが必要です。オブジェクト識別子は一意の識別子、2.16.840.1.113894で始まり、その後ろにOracle指定の接頭辞.9999か、サイト固有の接頭辞が続いている必要があります。
オブジェクト・クラスで参照されるスキーマ・コンポーネント(スーパークラスなど)は、すでに存在している必要があります。
スーパークラスの必須属性は、新規オブジェクト・クラスでオプション属性に再定義することが可能です。同様に、スーパークラスのオプション属性は、新規オブジェクト・クラスで必須属性に再定義できます。
この項では、既存のオブジェクト・クラスに対して実行できる変更のタイプについて説明します。変更は、Oracle Directory Services Managerおよびコマンドライン・ツールを使用して実行できます。
オブジェクト・クラスに対しては、次の変更を実行できます。
必須属性からオプション属性への変更
オプション属性の追加
スーパークラスの追加
抽象型オブジェクト・クラスから構造型または補助型オブジェクト・クラスへの変換(その抽象型オブジェクト・クラスが、別の抽象型オブジェクト・クラスのスーパークラスではない場合)
オブジェクト・クラスを変更するときは、次のガイドラインに注意してください。
標準のLDAPスキーマの一部であるオブジェクト・クラスは変更できません。ユーザー定義のオブジェクト・クラスは変更できます。
必要な属性が既存のオブジェクト・クラスに設定されていない場合は、補助型オブジェクト・クラスを作成して、必要な属性をそのオブジェクト・クラスに関連付けることができます。
エントリがすでに関連付けられているオブジェクト・クラスは変更しないでください。
属性を扱う操作を実行する前に、概念的な観点から属性を理解する必要があります。
多くの場合、ベース・スキーマにある属性で、ユーザーの組織のニーズを満たすことができます。ベース・スキーマにない属性を使用する場合は、新規属性の追加または既存属性の変更が可能です。
デフォルトでは、属性は複数値です。Oracle Directory Services Managerまたはコマンドライン・ツールを使用して、属性を単一値に指定できます。
注意: 非バイナリ属性の最大長は4000バイトです。 |
属性の名前とオブジェクト識別子は、すべてのスキーマ・コンポーネントを通して一意であることが必要です。
構文と一致規則は、整合性がとれている必要があります。
スーパー属性はすでに存在している必要があります。
属性名の長さは127文字までです。
他のスキーマ・コンポーネントから直接または間接的に参照されていない属性は、削除することができます。
エントリの参照先である属性を削除すると、そのエントリはディレクトリ操作に使用できなくなります。
注意: Oracle Directory Services Managerの「スキーマ」タブの属性ページには、属性を直接参照するオブジェクト・クラスを示す「参照元」セクションがあります |
関連項目: 属性値のサイズを指定する構文の使用方法の詳細は、Oracle Fusion Middleware Oracle Identity Managementリファレンスの属性の構文に関する説明を参照してください。 |
Oracle Internet Directoryは、索引を使用して属性を検索できるようにしています。Oracle Internet Directoryのインストール時に、検索で使用できる属性のリストがエントリcn=catalogs
に表示されます。
その他の属性を検索フィルタで使用する場合は、使用する属性をカタログ・エントリに追加する必要があります。
新しい属性(ディレクトリにデータが存在していない属性)に、ldapmodifyを使用して索引を付けることができます。ディレクトリにデータがすでに存在している属性に索引を付けるには、カタログ管理ツールを使用します。属性から索引を削除するには、ldapmodifyを使用することもできますが、カタログ管理ツールを使用することをお薦めします。また、Oracle Directory Services Managerを使用して属性の索引を管理することもできます。
注意:
|
注意: 次の条件を満たす属性のみ索引を付けることができます。
|
エントリの属性数を拡大できます。使用する方法は、エントリがすでに存在するかどうかによって異なります。
エントリがまだない場合、ディレクトリにエントリを作成する前に属性数を拡大できます。
既存エントリの場合、関連付ける属性数の拡大方法には2通りあります。
各エントリのobjectclass
属性のリストにオブジェクト・クラスの名前を追加します。ディレクトリが比較的小さい場合は、属性に基づいてエントリを検索できるため、この方法が適しています。一方、ディレクトリが大きい場合は、objectclass
属性へのオブジェクト・クラスの名前の入力が、非常に複雑な作業になる場合があります。
コンテンツ・ルールを使用します。大きいディレクトリでエントリの内容を拡大する場合、この方が効率的な場合があります。
この項の項目は次のとおりです。
Oracle Internet Directoryは、インストール時に、標準的なLDAPオブジェクト・クラスといくつかの専用オブジェクト・クラスを用意します。この事前に定義されたオブジェクト・クラスに属している属性のセットには、必須属性を追加できません。エントリに必要なすべての属性が所定のオブジェクト・クラスに含まれていない場合には、次のうちのいずれかを行います。
関連項目:
|
エントリに必要な追加属性を含む補助型オブジェクト・クラスを作成し、その補助型オブジェクト・クラスをエントリと関連付けることができます。補助型オブジェクト・クラスをエントリと関連付けるには、エントリのobjectclass
属性でそれを指定します。
関連項目:
|
コンテンツ・ルールは、仕様に従って、特定の構造型オブジェクト・クラスと関連付けられたエントリで使用されるコンテンツの種類を決定します。たとえば、person
オブジェクト・クラスと関連付けられたエントリは、そのオブジェクト・クラスの属性だけでなく、他の属性も持つ必要があることを指定できます。追加属性は、補助型オブジェクト・クラスの必須またはオプションの属性にできます。
エントリには補助型クラスをリストする必要があります(これはかなりの管理負荷になることがあります)が、コンテンツ・ルールをリストする必要はありません。
コンテンツ・ルールには、コンテンツ・ルールが適用される構造型オブジェクト・クラスだけでなく、次のものも含めることができます。
規則によって制御されるエントリで使用可能な補助型オブジェクト・クラス
構造型および補助型オブジェクト・クラスに必要な属性に加え、DITコンテンツ・ルールによって制御されるエントリで必要な必須属性
構造型および補助型オブジェクト・クラスに必要な属性に加え、DITコンテンツ・ルールによって制御されるエントリで使用可能なオプション属性
この項では、Oracle Directory Services Managerおよびコマンドライン・ツールを使用してコンテンツ・ルールを管理する方法を説明します。
新しいコンテンツ・ルールの定義中に、ディレクトリ・サーバーは構文を検証し、コンテンツ・ルールにリストされた属性およびオブジェクト・クラスがディレクトリで定義済であることを確認します。
コンテンツ・ルールは、構造型オブジェクト・クラスに対してのみ指定できます。オブジェクト・クラスの名前では、大文字と小文字が区別されます。
各構造型オブジェクト・クラスに複数のコンテンツ・ルールを指定できます。ただし、コンテンツ・ルールは、オブジェクト・クラスごとに異なるラベルで関連付ける必要があります。
コンテンツ・ルールの既存の定義を変更する場合、クライアントは既存の定義を削除した後で、新しい定義を追加する必要があります。replace
コマンドを使用してコンテンツ・ルールを単純に置き換えることはできません。
コンテンツ・ルールを削除する場合、クライアントは構造型オブジェクト・クラスおよびコンテンツ・ルールの英数字のオブジェクト識別子のみを指定する必要があります。オプションで、削除するコンテンツ・ルールの関連バージョンを指定することもできます。
コンテンツ・ルールは、サブスキーマ・サブエントリ(cn=subschemasubentry
)のDITContentRule
属性の値として定義されます。これらは、次の規則に準拠する必要があります。
エントリの構造型オブジェクト・クラスは、エントリに適用可能なコンテンツ・ルールを識別します。構造型オブジェクト・クラスに対するコンテンツ・ルールが存在しない場合、そのオブジェクト・クラスと関連付けられたエントリには、構造型オブジェクト・クラス定義によって許可された属性のみが含まれます。
コンテンツ・ルールは構造型オブジェクト・クラスと関連付けられるため、同じ構造型オブジェクト・クラスのすべてのエントリが、DITでの位置に関係なく、同じコンテンツ・ルールを持ちます。
エントリのコンテンツは、そのエントリのobjectClass
属性にリストされたオブジェクト・クラスの一貫性を維持している必要があります。具体的には、次の条件を満たしている必要があります。
objectClass
属性にリストされたオブジェクト・クラスの必須属性は、常にエントリ内に存在する必要があります。
コンテンツ・ルールで指定された補助型オブジェクト・クラスのオプション属性は、objectClass
属性にそれらの補助型オブジェクト・クラスがリストされていない場合でも存在できます。
スキーマ整合性についてオブジェクトを検証する場合、ディレクトリ・サーバーはエントリの構造型オブジェクト・クラスのコンテンツ・ルールを使用します。また、エントリにリストされたその他すべてのオブジェクト・クラスも使用します。
オブジェクト・クラスに複数のコンテンツ・ルールが存在する場合は、エントリの追加または変更時、あるいはデータのバルク・ロード時に、次の規則が適用されます。
エントリには、各種コンテンツ・ルールにリストされたすべての補助型オブジェクト・クラスからの属性を含めることができます。コンテンツ・ルールにオブジェクト・クラスが指定されていない場合、クライアントは、制限なくディレクトリ・エントリの補助型オブジェクト・クラスを明示的に追加できます。
エントリには、次のものにリストされたすべての必須属性の値を含める必要があります。
コンテンツ・ルール
エントリと関連付けられたオブジェクト・クラス
エントリに適用可能なコンテンツ・ルールにリストされた補助型オブジェクト・クラス
オプションで、次のものにリストされたオプション属性の一部またはすべての値をエントリに含めることができます。
コンテンツ・ルール
エントリにリストされたオブジェクト・クラス
エントリに適用可能なコンテンツ・ルールにリストされた補助型オブジェクト・クラス
必須と指定された属性は、その属性をオプションと定義する他のすべての定義をオーバーライドします。
コンテンツ・ルールにリストされた補助型オブジェクト・クラスは、エントリのobjectclass
属性にリストされないため、それらのオブジェクト・クラスをエントリ検索時にフィルタとしてリストすることはできません。かわりに、関連する構造型オブジェクト・クラスに基づいて検索します。補助型オブジェクト・クラスに基づいて検索する必要がある場合は、その補助型オブジェクト・クラスをユーザー・オブジェクトのobjectclass
属性に明示的に追加します。
たとえば、構造型オブジェクト・クラスinetOrgPerson
のコンテンツ・ルールは、補助型オブジェクト・クラスorclUser
を指定できます。ただし、これは、ディレクトリ内のすべてのinetOrgPerson
エントリにorclUser
がobjectclass
属性の値として含まれることを意味しません。したがって、フィルタobjectclass=orclUser
を使用した検索は失敗します。コンテンツ・ルールに含まれる補助型オブジェクト・クラスを問い合せるかわりに、objectclass=inetOrgPerson
などの構造型オブジェクト・クラスを問い合せる必要があります。
objectclass=orcluser
に基づいて検索するには、各エントリのobjectclass
属性の値の1つとしてorclUser
を追加します。
この注意事項は、アクセス制御ポリシーで使用するフィルタにも適用されます。追加の補助型オブジェクト・クラスと関連付けられたコンテンツ・ルールを使用している場合、検索フィルタでは構造型オブジェクト・クラスのみを使用します。
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
フィールドで属性別名を定義します。
属性別名は、属性名と同じ構文規則に従います。
別名のない属性を再定義することにより、属性別名を削除します。
「コマンドラインを使用したディレクトリ・スキーマの管理」を参照してください。
ユーザーは、属性別名と同じように、属性名のかわりにオブジェクト識別子を使用できます。
この項の項目は次のとおりです。
Oracle Directory Services Managerを使用してオブジェクト・クラスを検索する手順は、次のとおりです。
「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
タスク選択バーで、「スキーマ」を選択します。
左側の「オブジェクト・クラス」パネルを展開します。
「検索」フィールドにキーワードを入力し、「実行」をクリックします。キーワードと一致するオブジェクト・クラスのリストが左側のパネルに表示されます。
ワイルドカードとして"*
"および"?
"を使用できます。たとえば、*person
と入力すると、検索によってperson
で終わるすべてのオブジェクト・クラスが返されます。
検索を終了し、オブジェクト・クラスの全一覧に戻るには、「検索テキストのクリア」を選択します。
Oracle Directory Services Managerを使用してオブジェクト・クラスを追加する手順は、次のとおりです。
「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
タスク選択バーで、「スキーマ」を選択します。
左側の「オブジェクト・クラス」パネルを展開し、ツールバーの「作成」を選択します。「新規オブジェクト・クラス」ダイアログ・ボックスが表示されます。
または、「オブジェクト・クラス」パネルで、作成するオブジェクト・クラスに類似しているオブジェクト・クラスを選択した後、「類似作成」を選択する方法もあります。「新規オブジェクト・クラス」ダイアログ・ボックスに選択したオブジェクト・クラスの属性が表示されます。このオブジェクト・クラスをテンプレートとして使用して、新規のオブジェクト・クラスを作成できます。
「新規オブジェクト・クラス」ダイアログ・ボックスで、フィールドに情報を入力します。
「作成」を選択します。
関連項目:
|
すでにエントリで使用されているオブジェクト・クラスには、オプション属性は追加できますが、必須属性は追加できません。すでに使用されているオブジェクト・クラスにオプション属性を追加する場合、特別なルールは適用されず、属性は空の属性としてエントリに追加されます。
「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
タスク選択バーで、「スキーマ」を選択します。
左側の「オブジェクト・クラス」パネルを展開します。スクロールバーを使用して、オブジェクト・クラスのアルファベット順のリストを移動します。「Oracle Directory Services Managerを使用したオブジェクト・クラスの検索」に記載のように、オブジェクト・クラスを検索することもできます。
変更するオブジェクト・クラスをクリックします。ページの右側に「オブジェクト・クラス」タブが表示されます。
スーパークラスまたは属性を追加または削除するには、「スーパークラス」、「必須属性」または「オプション属性」リストで選択し、リストの上にあるツールバーの「追加」または「削除」を選択します。
「必須属性」ツールバーの「オプションの作成」を選択し、属性をオプションにします。
スーパークラスまたは属性を編集するには、「スーパークラス」、「必須属性」または「オプション属性」リストで選択し、「編集」を選択します。「オブジェクト・クラス」または「属性」ダイアログが表示されます。これを使用してスーパークラスまたは属性を変更します。「オブジェクト・クラス」ダイアログで、スーパークラス、あるいはスーパークラスの必須属性またはオプション属性を追加、削除または編集できます。変更後、各ダイアログで「OK」をクリックします。
「オブジェクト・クラス」ページで「適用」を選択して変更を適用するか、「元に戻す」を選択して変更を破棄します。
注意: 属性は、補助型オブジェクト・クラスまたはユーザー定義の構造型オブジェクト・クラスに追加できます。関連項目: 補助型オブジェクト・クラスへの属性の追加例は、「コマンドライン・ツールを使用した補助型またはユーザー定義のオブジェクト・クラスへの新規属性の追加」を参照してください。 |
注意: ベース・スキーマからはオブジェクト・クラスを削除しないことをお薦めします。エントリの参照先であるオブジェクト・クラスを削除すると、そのエントリにアクセスできなくなります。ベース・スキーマからオブジェクト・クラスを削除すると、Oracle Directory Services Managerの不具合の原因になることもあります。 |
Oracle Directory Services Managerを使用してオブジェクト・クラスを削除する手順は、次のとおりです。
「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
タスク選択バーで、「スキーマ」を選択します。
「オブジェクト・クラス」の横の「+」をクリックし、「オブジェクト・クラス」パネルを展開します。スクロールバーを使用して、「オブジェクト・クラス」のアルファベット順のリストを移動します。
削除するオブジェクト・クラスを選択します。
ツールバーから「削除」を選択し、確認ダイアログ・ボックスで「削除」をクリックします。
スキーマ内のすべてのオブジェクト・クラスを表示する手順は、次のとおりです。
「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
タスク選択バーで、「スキーマ」を選択します。
「オブジェクト・クラス」の横の「+」をクリックし、「オブジェクト・クラス」パネルを展開します。スクロールバーを使用して、「オブジェクト・クラス」のアルファベット順のリストを移動します。
表示するオブジェクト・クラスをクリックします。ページの右側に「オブジェクト・クラス」タブが表示されます。
オブジェクト・クラスのスーパークラスまたは属性の詳細を表示するには、対象を選択して「編集」をクリックします。オブジェクト・クラス・パネルに戻るには、「取消」をクリックします。
新規属性を追加する手順は、次のとおりです。
「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
タスク選択バーで、「スキーマ」を選択します。
必要に応じて、左側の「属性」ペインを展開し、ツールバーの「作成」ボタンを選択します。「新規属性の型」ダイアログ・ボックスが表示されます。
または、「属性」パネルで、作成する属性に類似している属性を選択した後、「類似作成」を選択する方法もあります。「新規属性の型」ダイアログ・ボックスに選択した属性の属性が表示されます。この属性をテンプレートとして使用して、新規の属性を作成できます。
ヒント: 等価、構文および一致規則は数が多く複雑であるため、これらの特性は、類似の既存属性からコピーすると作業が簡単になります。 |
各フィールドに値を入力します。
「適用」を選択します。
注意: この属性を使用するには、オブジェクト・クラスに対する属性セットの一部であることを必ず宣言してください。これは、「オブジェクト・クラス」ペインで実行します。詳細は、「Oracle Directory Services Managerを使用したオブジェクト・クラスの変更」および「コマンドライン・ツールを使用したオブジェクト・クラスの変更」を参照してください。 |
Oracle Directory Services Managerを使用して属性を変更する手順は、次のとおりです。
「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
タスク選択バーで、「スキーマ」を選択します。
「属性」パネルで、変更する属性を選択します。右側に「属性」ページが表示されます。
属性タブで、必要に応じて編集可能なフィールド内の情報を変更または追加します。
「適用」を選択します。
注意: ベース・スキーマから属性またはオブジェクト・クラスを削除しないことをお薦めします。ベース・スキーマから属性またはオブジェクト・クラスを削除すると、Oracle Directory Services Managerの不具合の原因になることがあります。 |
属性を削除する方法は次のとおりです。
「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
タスク選択バーで、「スキーマ」を選択します。
「属性」パネルで、削除する属性を選択します。
左側のパネルのツールバーから「削除」を選択し、確認ダイアログ・ボックスで「削除」をクリックします。
Oracle Directory Services Managerを使用して属性を表示する手順は、次のとおりです。
「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
タスク選択バーで、「スキーマ」を選択します。
「属性」を展開します。
「属性」パネルでスクロールバーを使用してアルファベット順のリストを移動します。
関連項目: 特定のオブジェクト・クラスの属性を表示する方法は、「Oracle Directory Services Managerを使用したオブジェクト・クラスのプロパティの表示」を参照してください。 |
Oracle Directory Services Managerを使用して属性を検索する手順は、次のとおりです。
「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
タスク選択バーで、「スキーマ」を選択します。
左側のペインで「属性」リストを展開します。
左側のペインの「検索」フィールドに検索条件を入力します。アスタリスク(*
)または疑問符(?
)をワイルドカードとして使用できます。「実行」アイコンをクリックするか、キーボードの[Enter]
を押します。
検索結果は左側のペインのリストに表示されます。検索を終了して属性の全一覧に戻るには、「検索テキストのクリア」アイコンをクリックします。
属性に索引を追加する手順は、次のとおりです。
「Oracle Directory Services Managerを使用した新規属性の追加」または「ldapmodifyを使用した属性の追加と変更」で説明されているように、属性を作成します。
「新規属性タイプ」ダイアログ・ボックスの「索引付け」ボックスを選択します。
Oracle Directory Services Managerでは、既存の属性がまだ使用されていない場合にのみその属性に索引を追加できます。
既存の属性に索引を追加する手順は、次のとおりです。
「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
タスク選択バーで、「スキーマ」を選択します。
現在索引付けされていない、索引の追加先の属性を選択します。
「属性がカタログ化/カタログから削除されます。」アイコンをクリックします。確認ダイアログが表示された後、「確認」をクリックします。
「索引付け」ボックスに属性が索引付けされたことが示されます。
「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
タスク選択バーで、「スキーマ」を選択します。
現在索引付けされており、索引の削除対象の属性を選択します。
「属性がカタログ化/カタログから削除されます。」アイコンをクリックします。確認ダイアログが表示された後、「確認」をクリックします。
「索引付け」ボックスに、属性がもう索引付けされていないことが示されます。
「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
タスク選択バーで、「スキーマ」を選択します。
左側のペインで「コンテンツ・ルール」リストを展開します。
「作成」を選択します。「新規コンテンツ・ルール」ダイアログ・ボックスが表示されます。
「新規コンテンツ・ルール」ダイアログ・ボックスの「構造化オブジェクト・クラス」および「オブジェクトID」フィールドに情報を追加します。オプションでラベルを追加します。
「補助クラス」、「必須属性」または「オプション属性」リストの上にあるツールバーの「追加」、「削除」または「編集」アイコンを選択し、項目を追加または削除します。追加の場合、ダイアログから補助クラス、必須属性またはオプション属性を選択します。必要に応じて検索機能を使用します。
または、「コンテンツ・ルール」パネルで、作成するコンテンツ・ルールに類似しているコンテンツ・ルールを選択した後、「類似作成」を選択する方法もあります。「新規コンテンツ・ルール」ダイアログ・ボックスに選択したコンテンツ・ルールの属性が表示されます。このコンテンツ・ルールをテンプレートとして使用して、新規のコンテンツ・ルールを作成できます。
コンテンツ・ルールを追加するには、「OK」を選択します。
コンテンツ・ルールを変更する手順は次のとおりです。
「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
タスク選択バーで、「スキーマ」を選択します。
左側のペインで「コンテンツ・ルール」リストを展開します。
変更するコンテンツ・ルールを選択します。オブジェクト・クラスを検索する場合と同様に検索フィールドにキーワードを入力して、コンテンツ・ルールを検索できます。「Oracle Directory Services Managerを使用したオブジェクト・クラスの検索」を参照してください。
コンテンツ・ルール・タブの適切なフィールドで値を変更します。
「補助クラス」、「必須属性」または「オプション属性」リストの上にあるツールバーの「追加」、「削除」または「編集」アイコンを選択し、項目を追加または削除します。追加の場合、ダイアログから補助クラス、必須属性またはオプション属性を選択します。必要に応じて検索機能を使用します。
「適用」を選択して変更を有効にするか、「元に戻す」を選択して変更を破棄します。
注意: 一致規則は変更できません。 |
「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
タスク選択バーで、「スキーマ」を選択します。
「一致ルール」リストを展開します。リストに一致規則が表示されます。
オブジェクト・クラスを検索する場合と同様に検索フィールドにキーワードを入力して、一致規則を検索できます。「Oracle Directory Services Managerを使用したオブジェクト・クラスの検索」を参照してください。
一致規則を選択し、右側の「一致ルール」タブ・ページにその詳細を表示します。
注意: 構文は変更できません。 |
Oracle Directory Services Managerを使用して構文を表示する手順は、次のとおりです。
「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
タスク選択バーで、「スキーマ」を選択します。
「構文」リストを展開します。リストに構文名が表示されます。
構文を選択し、右側の「構文」タブ・ページにその詳細を表示します。
この項の項目は次のとおりです。
次のように入力して、スキーマをファイルに書き込むことができます。
ldapsearch -h OID_host -p OID_port -q -L -D "cn=orcladmin" \ -b "cn=subschemasubentry" -s base "objectclass=*" > schema.ldif
この例では、LDIF入力ファイルnew_object_class.ldi
に、次のようなデータが含まれています。
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
で置き換えます。
補助型オブジェクト・クラスまたはユーザー定義の構造型オブジェクト・クラスに新規属性を追加するには、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
スキーマ・コンポーネントを追加または変更するには、ldapmodify
を使用します。
関連項目: Oracle Fusion Middleware Oracle Identity Managementリファレンスの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を使用して属性を削除するには、システム・プロンプトで次のようなコマンドを入力します。
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を使用してその属性をカタログ・エントリに追加できます。
ディレクトリ・データが存在していない属性を追加するには、ldapmodify
を使用してLDIFファイルをインポートします。たとえば、すでにスキーマに定義されている属性foo
に索引を付けるには、ldapmodifyで次のLDIFファイルをインポートします。
dn: cn=catalogs changetype: modify add: orclindexedattribute orclindexedattribute: foo
システム・プロンプトで次のようなコマンドを入力します。
ldapmodify -D "cn=orcladmin" -q -h host -p port -f ldif_file_name
この方法は、ディレクトリにデータが存在している属性に索引を付ける場合には使用しないでください。このような属性に索引を付けるには、カタログ管理ツールcatalog
を使用します。「catalogを使用した既存の属性の索引の作成および削除」を参照してください。
ldapmodify
を使用して属性から索引を削除するには、LDIFファイルでdelete
を指定します。次に例を示します。
dn: cn=catalogs changetype: modify delete: orclindexedattribute orclindexedattribute: foo
関連項目: Oracle Fusion Middleware Oracle Identity Managementリファレンスのldapmodify コマンドライン・ツールのリファレンス |
データがすでに存在している属性に対する索引付けおよび属性からの索引の削除には、カタログ管理ツールを使用します。「catalogを使用した既存の属性の索引の作成および削除」を参照してください。
関連項目: Oracle Fusion Middleware Oracle Identity Managementリファレンスのcatalog コマンドライン・ツールのリファレンス |
注意: Oracle Internet Directoryでインストールされたベース・スキーマによって作成された索引ではないことが確信できない場合は、catalog delete=T オプションを使用して属性から索引を削除しないように注意してください。ベース・スキーマ属性から索引を削除すると、Oracle Internet Directoryの操作に悪影響を及ぼす場合があります。 |
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' )
次の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
属性別名の削除には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 )
LDAPスキーマで属性別名を定義した後、ユーザーはLDAP操作で属性名に別名を代入できます。次の例は、使用するコマンドと予想される結果を示します。
表20-1は、例で使用されている別名と、別名が表す属性名を示しています。
表20-1 例で使用されている属性別名
別名 | 属性名 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
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検索結果を得るための標準動作です。識別名は常に、エントリの作成時に使用されたものと同じ書式で返されます。
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検索結果を得るための標準動作です。識別名は常に、エントリの作成時に使用されたものと同じ書式で返されます。
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"
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検索結果を得るための標準動作です。識別名は常に、エントリの作成時に使用されたものと同じ書式で返されます。
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 ) )
表20-2に、パラメータを示します。属性およびオブジェクト・クラスの名前では、大文字と小文字が区別されることに注意してください。
表20-2 コンテンツ・ルールのパラメータ
パラメータ | 説明 |
---|---|
オブジェクト・クラスまたは属性定義のオブジェクト識別子と同様の、コンテンツ・ルールの一意のオブジェクト識別子(oids)。これは、 |
|
LABEL |
ディレクトリで適用されるコンテンツ・ルールのコンテンツ・ラベル。 |
structuralObjectClass |
コンテンツ・ルールが適用される構造型オブジェクト・クラス。 |
auxiliaries |
コンテンツ・ルールが適用されるエントリで使用可能な補助型オブジェクト・クラス。 |
mandatory |
コンテンツ・ルールが適用されるエントリに含まれるユーザー属性タイプ。これは、指定された構造型および補助型オブジェクト・クラスとの関連付けの結果としてエントリに含まれる必須属性に対する追加の属性です。 |
optional |
コンテンツ・ルールが適用されるエントリに含めることができるユーザー属性タイプ。これは、指定された構造型および補助型オブジェクト・クラスとの関連付けの結果としてエントリに含めることができる属性に対する追加の属性です。 |
注意: 一致規則は変更できません。 |
一致規則を表示するには、次のように入力します。
ldapsearch -L -D "cn=orcladmin" -p port -q -b "cn=subschemasubentry" -s base "objectclass=*" matchingrules
関連項目: Oracle Fusion Middleware Oracle Identity Managementリファレンスのldapsearch コマンドライン・ツールのリファレンス |