12. LDAP スキーマ

これまで挙げた機能に必要なデータの居場所をなんとかするのは スキーマの問題です。どんな環境でも、厳粛に扱うべきものとみなして かしこまるべきではありません。ここにある例は目的にかなうはずですが、 自分の特定の必要に合わせなくてはならないことも多分あると思います。

各エントリの意味と入れるべき情報を解明するためにとても苦労してきた (きっとはっきり書いてあるのでしょうが、どこに書いてあるかが分からない) ので、 著者も試行錯誤でやってみます。しかし注意すべきことに、各用途のスキーマを 同時に問題なく利用できるというわけではありません。 Microsoft のアドレス帳には、表示されているのに LDAP で使用しない フィールドがあるようです。「役職」「ニックネーム」「市区町村」「都道府県」 「(自宅の) 郵便番号」「(自宅の) 国/地域」「(自宅の) Web ページ」 のエントリには、何の情報も必要ないように思えます (訳注:日本語版での動作は 未確認)。「個人情報」「NetMeeting」「デジタル ID」については、まだ どのように LDAP データベースに入れられるのか 解明するための努力をしていません。どんな情報も歓迎します。 Netscape のアドレス帳にも同様の問題があります。レコードが LDAP ディレクトリからローカルのアドレス帳にコピーされるときに、 幾つかのフィールドが消えてしまうのです。これは大問題とは言えなくとも、 組織全体で使うアドレスブックという性質上、ユーザはローカルにコピーする気を なくすはずです。しかも、 Netscape のアドレス帳には、他にも少しおかしな点があります。 普通のアドレスレコードでは、「ニックネーム」が格納される 属性は xmozillanickname です。ところが検索時は 単なる nickname なのです。ネックネームのエントリが スキーマに二度出てくるのには、こういう理由があるのです。

このスキーマは Microsoft Outlook 2000 と Netscape 4.73 で 動作が確認されていますが、説明、機能、エントリの必要性に関して 間違いがあれば、どうかお知らせください! (訳注:日本語のフィールド表示は Windows 98 のアドレス帳と Windows 版 Netscape 6.1 から推測したものです。日本語版での動作はほとんど未確認です。 ただ、日本語版 Windows Me + Outlook 2000 で アドレス帳を試験した範囲では正しいようでした。)

このスキーマを表現したファイルは Section 13.1 にあります。(訳注:訳者は、このファイルをどう使うのか分かりませんでした。 書式が古いのかも?)


Table 1. LDAP の属性と objectclass ― 簡単な説明

機能Objectclass属性説明既定値や例
ユーザアカウントtop デフォルト 
ouユニット名 (Organizational Unit)Users
person この objectclass の所有者は人間です 
uidUnix ログイン名foo
cn氏名 (Common Name)Foo Bar
sn姓 (Surname)Bar
account この objectclass の所有者にはアカウントがあります 
posixaccount この objectclass の所有者には Unix アカウントがあります 
uidNumberユーザ ID (uid) 番号513
gidNumberグループ ID (gid) 番号100
homedirectoryホームディレクトリ/home/users/foo
userpasswordUnix パスワードS3cr3t
sambaaccount この objectclass の所有者には Samba アカウントがあります 
ntuid不明uid
rid不明uidnumber
lmpasswordLanman のパスワードのハッシュ値未使用
ntpasswdNT のパスワードのハッシュ値未使用
loginshellユーザのシェル/bin/pleurop
マシンアカウントtop デフォルト 
ouユニット名 (Organizational Unit)Machines
posixaccount この objectclass の所有者には Unix アカウントがあります 
uidログイン名speed$
uidnumberUnix のユーザ ID (uid) 番号514
gidnumberグループ ID (gid) 番号100
homedirectoryホームディレクトリ未使用
Microsoft アドレス帳top デフォルト 
ouユニット名 (Organizational Unit)Addressbook
microsoftaddressbook この objectclass の所有者には Microsoft アドレス帳の プロパティがあります 
cn表示名 (Common Name) 
c勤務先の国/地域 (Country) 
department勤務先の部署名 
facsimiletelephonenumber勤務先のファックス 
givenname 
homephone自宅の電話番号 
homepostaladdress自宅の番地 
infoメモ 
initialsイニシャル  
l勤務先の市区町村 
mail電子メールアドレス 
mobile自宅の携帯電話 
organizationname会社名 
otherfacsimiletelephonenumber自宅のファックス 
otherpager勤務先のポケットベル「pager」も?
physicaldeliveryofficename勤務先のオフィス  
postaladdress勤務先の番地  
postalcode勤務先の郵便番号 
sn姓 (Surname) 
st勤務先の都道府県 
telephonenumber勤務先の電話番号 
title役職 
url勤務先の Web ページ 
Netscape アドレス帳top デフォルト 
ouユニット名 (Organizational Unit)Addressbook
netscapeaddressbook この objectclass の所有者には Netscape のプロパティがあります 
cn表示 (Common Name) 
cellphone携帯電話 
countryname 
description説明  
facsimiletelephonenumberFax 
givenname 
homephone自宅の電話番号 
homeurl自宅の Web ページ 
locality自宅の市区町村 
mail電子メール 
nicknameニックネーム 
o組織 
ou部署 
pagerphoneポケットベル 
postalcode自宅の郵便番号 
sn姓 (Surname) 
st都道府県 
streetaddress自宅の番地 
telephonenumber勤務先の電話番号 
title役職 
xmozillaanyphone勤務先の電話番号 
xmozillanicknameニックネーム「nickname」と同じです
xmozillausehtmlmailメッセージを受信するときの優先書式が HTMLTRUE
Netscape ローミングアクセスtop デフォルト 
ouユニット名 (Organizational Unit)Roaming

Note: Netscape と Microsoft では、アドレス帳のエントリの使い方が 少々異なります。Netscape は郵便の宛先 (住所) を streetaddress エントリに base64 エンコードで格納し、Microsoft は postaladdress エントリを使います。 しかしながら、streetaddress エントリがあると Microsoft は postaladdress の代わりにそちらを使います。ところが Microsoft の streetaddress の値は base 64 エンコードなしの平文 (プレーンテキスト) です。 ですから、同時には使えません。

Linux Center では、 LDAP スキーマ全般に関する情報をさらに得られます。 Microsoft アドレス帳のプロパティを解説した文書は Microsoft Developers Network にありました。

注意してください。Microsoft のページにある説明は アドレス帳の表示内容におけるフィールドと合致しません。 また、アドレス帳のフィールドすべてが情報を持っているわけではありませんが、 挙げられている属性で うまく動作しないなら、本当は どの属性が うまく動作するのか、ということまでは分かりません。