この節では、LDAP 経由で属性タイプを作成、表示、および削除する方法を説明します。
cn=schema エントリは複数の値を持つ属性 attributeTypes があり、ディレクトリスキーマの各属性タイプの定義を格納します。それらの定義は ldapmodify(1) コマンドを使用して追加できます。
新しい属性タイプの定義とユーザー定義属性タイプの変更は、99user.ldif ファイルに保存されます。
各属性タイプ定義には、新しい属性タイプを定義する 1 つ以上の OID を指定する必要があります。新しい属性タイプには、少なくとも次の要素を使用することを考慮してください。
属性 OID。属性のオブジェクト識別子に相当します。OID はスキーマオブジェクトを一意に識別する文字列で、通常は小数点で区切られた数値です。
LDAP v3 に厳密に準拠するには、有効な数値 OID を指定する必要があります。OID の詳細または企業のプレフィックスを要求するには、iana@iana.org の IANA (Internet Assigned Number Authority) に電子メールを送信するか、http://www.iana.org IANA Web サイトを参照してください。
属性名。属性の一意の名前に相当します。その属性タイプとも呼ばれます。属性名はアルファベットから始まる必要があり、ASCII 文字、数字、ハイフンだけが有効です。
属性名には大文字を含めることもできますが、LDAP クライアントでは属性を区別するために、大文字と小文字で区別すべきではありません。http://www.ietf.org/rfc/rfc4512.txt RFC 4512 のセクション 2.5 に従って、属性名は大文字と小文字を区別しないで扱う必要があります。
オプションで、属性タイプに代替の属性名 (エイリアスとも呼ばれる) を含めることもできます。
属性の説明。属性の目的を説明する短い説明文です。
構文。OID によって参照され、属性に保持されているデータを説明します。
OID による属性構文は http://www.ietf.org/rfc/rfc4517.txt RFC 4517 に示されています。
使用できる値の数。デフォルトで、属性は複数の値を持つことができますが、1 つの値に制限することができます。
DSCC を使用してこの作業を実行できます。詳細は、「Directory Service Control Center のインタフェース」と DSCC のオンラインヘルプを参照してください。
http://www.ietf.org/rfc/rfc4517.txt RFC 4517 に指定された構文に従って、属性タイプ定義を準備します。
ldapmodify(1) コマンドを使用して、属性タイプ定義を追加します。
Directory Server によって、指定した定義に X-ORIGIN 'user defined' が追加されます。
次の例では、ldapmodify コマンドを使用して、ディレクトリ文字列構文で新しい属性タイプを追加します。
$ cat blogURL.ldif dn: cn=schema changetype: modify add: attributeTypes attributeTypes: ( 1.2.3.4.5.6.7 NAME ( 'blog' 'blogURL' ) DESC 'URL to a personal weblog' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) $ ldapmodify -D cn=admin,cn=Administrators,cn=config -w - -f blogURL.ldif Enter bind password: modifying entry cn=schema $ |
本稼働環境では、1.2.3.4.5.6.7 ではなく、有効な一意の OID を指定します。
cn=schema エントリには複数の値を持つ属性 attributeTypes があり、ディレクトリスキーマの各属性タイプの定義を格納します。それらの定義は、ldapsearch(1) コマンドを使用して読み取ることができます。
DSCC を使用してこの作業を実行できます。詳細は、「Directory Service Control Center のインタフェース」と DSCC のオンラインヘルプを参照してください。
次のコマンドは、すべての属性タイプの定義を表示します。
$ ldapsearch -T -b cn=schema "(objectclass=*)" attributeTypes |
-T オプションにより、ldapsearch コマンドは LDIF 行を折りたたまないため、grep や sed などのコマンドを使用して、出力を簡単に操作できます。次に、grep コマンドを使用して、このコマンドの出力をパイプすると、ディレクトリスキーマのユーザー定義拡張のみを表示できます。次に例を示します。
$ ldapsearch -T -b cn=schema "(objectclass=*)" attributeTypes | grep "user defined" attributeTypes: ( 1.2.3.4.5.6.7 NAME ( 'blog' 'blogURL' ) DESC 'URL to a personal weblog' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' ) |
cn=schema エントリには複数の値を持つ属性 attributeTypes があり、ディレクトリスキーマの各属性タイプの定義を格納します。X-ORIGIN 'user defined' を含む定義を削除するには、ldapmodify(1) コマンドを使用します。
スキーマは cn=schema 内の LDAP ビューによって定義されるため、ldapsearch ユーティリティーおよび ldapmodify ユーティリティーを使用してスキーマをオンラインで表示、変更することができます。しかし、削除できるスキーマ要素は、X-ORIGIN フィールドに 'user defined' という値が設定されている要素だけです。サーバーは他の定義を削除しません。
ユーザー定義属性の変更は、ファイル 99user.ldif に保存されます。
DSCC を使用してこの作業を実行できます。詳細は、「Directory Service Control Center のインタフェース」と DSCC のオンラインヘルプを参照してください。
削除する属性タイプの定義を表示します。
詳細については、「属性タイプを表示する」を参照してください。
ldapmodify(1) コマンドを使用して、スキーマに表示される属性タイプ定義を削除します。
次のコマンドは、例 11–1で作成した属性タイプを削除します。
$ ldapmodify -D cn=admin,cn=Administrators,cn=config -w - Enter bind password: dn: cn=schema changetype: delete delete: attributeTypes attributeTypes: ( 1.2.3.4.5.6.7 NAME ( 'blog' 'blogURL' ) DESC 'URL to a personal weblog' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' ) ^D |
Directory Server によって追加された X-ORIGIN 'user defined' を含めて、このスキーマ定義を拡張として分類する必要があります。