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.