この節では、LDAP 経由で属性タイプを作成、表示、および削除する方法を説明します。
cn=schema エントリは複数の値を持つ属性 attributeTypes があり、ディレクトリスキーマの各属性タイプの定義を格納します。それらの定義は ldapmodify(1) コマンドを使用して追加できます。
新しい属性タイプの定義とユーザー定義属性タイプの変更は、99user.ldif ファイルに保存されます。
各属性タイプ定義には、新しい属性タイプを定義する 1 つ以上の OID を指定する必要があります。新しい属性タイプには、少なくとも次の要素を使用することを考慮してください。
属性 OID。属性のオブジェクト識別子に相当します。OID はスキーマオブジェクトを一意に識別する文字列で、通常は小数点で区切られた数値です。
LDAP v3 に厳密に準拠するには、有効な数値 OID を指定する必要があります。OID の詳細または企業のプレフィックスを要求するには、iana@iana.org の IANA (Internet Assigned Number Authority) に電子メールを送信するか、IANA Web サイトを参照してください。
属性名。属性の一意の名前に相当します。その属性タイプとも呼ばれます。属性名はアルファベットから始まる必要があり、ASCII 文字、数字、ハイフンだけが有効です。
属性名には大文字を含めることもできますが、LDAP クライアントでは属性を区別するために、大文字と小文字で区別すべきではありません。RFC 4512 のセクション 2.5 に従って、属性名は大文字と小文字を区別しないで扱う必要があります。
オプションで、属性タイプに代替の属性名 (エイリアスとも呼ばれる) を含めることもできます。
属性の説明。属性の目的を説明する短い説明文です。
構文。OID によって参照され、属性に保持されているデータを説明します。
OID による属性構文は RFC 4517 に示されています。
使用できる値の数。デフォルトで、属性は複数の値を持つことができますが、1 つの値に制限することができます。
このタスクは DSCC を使用して実行することができます。詳細については、「Directory Service Control Center のインタフェース」および DSCC オンラインヘルプを参照してください。
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) コマンドを使用して、スキーマに表示される属性タイプ定義を削除します。
次のコマンドは、例 12–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' を含めて、このスキーマ定義を拡張として分類する必要があります。