LDAPとは何をするもの?

2005年9月8日(木)
森本 伸幸

ディレクトリツリーの構造

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 州や県などのフルネーム
mail メールアドレス
telephoneNumber 電話番号
mobile 携帯電話
uid 該当アカウントのログイン名
userPassword エントリのパスワード
serialNumber 装置のシリアルナンバー
description 説明、特徴など

OpenLDAP 2.2 管理者ガイド
本連載は「OpenLDAP 2.2 管理者ガイド」を参考に執筆しています。

システム開発の現場にて、各種言語を使ったウェブプログラミングを経験する。その際構築したLAPP環境に興味を持ち、その過程でのサーバ構築や独自の勉強などを通し、オープンソースというものに魅かれるようになる。現在は基盤構築案件にて構築業務に従事しながら、Linuxやオープンソース技術についての研究をしている。    

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています