LDAPとは何をするもの?
ディレクトリツリーの構造
LDIFに記述されている各エントリは、識別名(DN:Distinguished Name)によって一意に識別されています。
図2に表示されているエントリ、"ou=network service"や"ou=media"などがRDNです。RDNの子は一意でなければいけません。例えば、"ou=system"の子である"ou=development"は2つあってはいけないのです。
では、"ou=network service"の下にもう1つ"cn=Nobuyuki Morimoto"が入ってきたらどうなるでしょうか。この状況ではRDNが一意ではなくなってしまいます。
そういう場合は、"ou=network service"をさらに分割できるなら分割して一意を保ちます。しかしそれも不可能なら複数値RDNを使います。使い方は簡単で、DNを"cn=Nobuyuki Morimoto+mail=hoge@hoge.com,ou=network service,ou=system,dc=thinkit,dc=co,dc=jp"などのようにプラス(+)記号を使ってcn属性を複雑化させます。RDBの複合インデックスのようなものです。
また、オブジェクトクラス定義(objectClass)は重要な属性です。例えば"organizationalUnit"というオブジェクトクラスでは、部局に関する定義がされています。サンプルファイルの中の"cn=Nobuyuki Morimoto,ou=network service,ou=system,dc=thinkit,dc=co,dc=jp"というDNの"description"という属性はこのオブジェクトクラスの中で定義されているからこそこのエントリで使用できるのです。
その他のLDIFの構文について
先述してきた項目以外で、LDIFファイルを記述する際に特記すべき事項を以下にピックアップしました。
"description"の属性値は2行にまたがっています。このように、複数行にまたがって記述したい場合は、継続行の先頭に1つだけスペースかタブを入れなければなりません。
"objectClass"が2行続けて記述されている部分があります。このように1種類の属性記述子に複数の属性値を指定したい場合は、以下のように記述しなければなりません。
telephoneNumber: 03-0123-4567 telephoneNumber: 03-9876-5432
LDIFには数多くの属性記述子があるのですが、代表的なものを表1で紹介します。また、RFC2256に詳細が記述されていますので、必要に応じて活用して下さい。
表1:主な属性記述子
属性記述子 | 説明 |
---|---|
dc(domainComponent) | 完全修飾ドメイン名の単一のドメインコンポーネント |
c(countryName) | 2文字の国コード |
l(localityName) | 地理的な場所名 |
ou(organizationalUnit) | 該当エントリが所属する部局(局、部、課など) |
o (organizationName) | 組織名 |
cn(commonName) | オブジェクトの名前(フルネーム) |
sn(surname) | 姓 |
st | 州や県などのフルネーム |
メールアドレス | |
telephoneNumber | 電話番号 |
mobile | 携帯電話 |
uid | 該当アカウントのログイン名 |
userPassword | エントリのパスワード |
serialNumber | 装置のシリアルナンバー |
description | 説明、特徴など |
OpenLDAP 2.2 管理者ガイド
本連載は「OpenLDAP 2.2 管理者ガイド」を参考に執筆しています。