LDAPの一つ一つのオブジェクトは、ツリーの形で配置する。自由度が高すぎる。
そのパスは「識別名」(DN; distinguished name) で指定する。下位ディレクトリが左側に、一番右に root ノードが来る。順序にも意味がある。
例::
dn: olcDatabase={0}config,cn=config
dn: mail=hhorikawa@nslabs.jp,ou=people,dc=pineapple,dc=localdomain
不味い例::
cn=Anne Smith,ou=Server Development,c=uk,o=acme
ネット上のページを見ると、DNの書き方が千差万別で、そのまま真似すると運用が難しくなりそうなものも多い。
組織では、次のように組み立てるのがよさそう。
dc=). ローカルで立てる場合は, トップレベルドメインは local または localdomain.
cn=people / cn=groups / cn=hosts などを置く. Active Directory では CN=Users, CN=Computers という名前が使われる。
cn=people の下に置き、階層化しない
基本となる考え方は、時間とともに変わってしまうようなものをDNの一部として使わないこと。ネット上の例だと, CN (表示名) や OU で部署名を使っているものが多くあるが、特に部署名の枝の下にユーザアカウントを置くのは非常にまずい。結婚や異動があったときに, エントリを作り直さなければならない。
OU は、個々の部署単位ではなく, 適用するポリシーが異なる場合には、分ける。Active Directory では, グループポリシーオブジェクト (GPO) の適用単位。
Rfc2307bis
An Approach for Using LDAP as a Network Information Service
では、次のような階層が提案されていたが、期限切れとなっている。cn=people ではなく ou=people になっている。
| Naming context | ObjectClass | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ou=people,dc=... | posixAccount
shadowAcount
| ||||||||||||||||||
ou=group,dc=... | posixGroup
|
各エントリは, それぞれデータ型 (object class) を持つ。[RFC4519] Schema for User Applications
ユーザアカウントでよく使われる型は inetOrgPerson [RFC2798]. inetOrgPerson 型はorganizationalPerson 型から派生する。さらに、organizationalPerson はperson型から派生している。
| sn | Required |
| cn | Required |
| userPassword | |
| telephoneNumber | |
| seeAlso | |
| description |
| title |
| x121Address |
| registeredAddress |
| destinationIndicator |
| preferredDeliveryMethod |
| telexNumber |
| teletexTerminalIdentifier |
| telephoneNumber |
| internationalISDNNumber |
| facsimileTelephoneNumber |
| street |
| postOfficeBox |
| postalCode |
| postalAddress |
| physicalDeliveryOfficeName |
| ou |
| st |
| l |
各エントリは、データ型にしたがって、属性ペアを持つ。
LDAP実装は, 少なくとも次の AttributeType をサポートしなければならない。 [RFC 4514]
| String | X.500 AttributeType |
|---|---|
| CN | commonName (2.5.4.3) |
| L | localityName (2.5.4.7) |
| ST | stateOrProvinceName (2.5.4.8) |
| O | organizationName (2.5.4.10) |
| OU | organizationalUnitName (2.5.4.11) |
| C | countryName (2.5.4.6) |
| STREET | streetAddress (2.5.4.9) |
| DC | domainComponent (0.9.2342.19200300.100.1.25) |
| UID | userId (0.9.2342.19200300.100.1.1) |
これ以外にも, 標準で多数の attribute type が用意されている。[RFC 4519]
| String | X.500 |
|---|---|
| sn | surname |
RFC 4510 (2006年) Lightweight Directory Access Protocol (LDAP): Technical Specification Road Map これが目次。仕様は RFC 4511 ~ RFC 4519.