LDAP Implementation HOWTO
Prev |  | Next

# 11. Ldap schema's

Warning: this section is terribly incomplete and outdated. I should be updating it, adding the various rfc's or other authoritive sources of schematic data.

This is a proposition of a schema that can be used to accommodate all the data needed for the previously listed functions. It should under no circumstances be regarded as authoritative. It is an example that should serve it's purpose, but it is likely you have to adapt it to match your specific needs.

Because it has been a lot of work (for me, maybe it's out there but I don't know where?) to find out the specific meaning of each entry, and what information it should contain, I'll try to do this as well. It should be noted, however, that it doesn't fit together seamlessly. The Microsoft Addressbook does not seem to use some of the fields it is presenting. I suspect that for the "Title", "Nickname", "Home City", "Home State/Province", "Home ZIP Code", "Home Country/Region" and "Home Web Page" entries no information is requested. For the "Personal", "Netmeeting" and "Digital IDs" I didn't yet bother to figure out how it should be put in the Ldap database. Any information is welcome. The netscape address book has a similar problem. When a record is copied from an LDap directory to a local address book, some of the fields are lost. As the nature of an company-wide addressbook should discourage users to copy addresses locally, this is not a big problem though. But netscape address book has another little oddity though. In a normal address record, the Ldap attribute associated with "Nickname" is xmozillanickname. When searching for addresses however, the associated attribute is simple nickname. That is the reason why the nickname entry shows up twice in the schema.

This schema is known to work with Microsoft Outlook 2000, and Netscape 4.73. If you find I'm wrong about a description, function, or neccessity of an entry, please do let me know!

The schema file that represent this schema can be found in Section 12.1.

Table 1. Ldap attributes and objectclasses - quick description

Function | Objectclass | Attributes | Description | (Default) value
--- | --- | --- | --- | ---
User accounts | top |  | default |
ou | Organizational Unit | Users
person |  | Owner is a person |
uid | unix login name | foo
cn | Common Name | Foo Bar
sn | Surname | Bar
account |  | Owner has an account |
posixaccount |  | Owner has a Unix account |
uidNumber | uid | 513
gidNumber | gid | 100
homedirectory | Home directory | /home/users/foo
userpassword | unix password | S3cr3t
sambaaccount |  | Owner has a samba account |
ntuid | Unknown | uid
rid | Unknown | uidnumber
lmpassword | Lanman password hash | Unused
ntpasswd | NT password hash | Unused
loginshell | Users shell | /bin/pleurop
Machine accounts | top |  | default |
ou | Organizational Unit | Machines
posixaccount |  | Owner has a unix account |
uid | login name | speed$
uidnumber | unix uid | 514
gidnumber | gid | 100
homedirectory | Home directory | Unused
Microsoft Address Book | top |  | default |
ou | Organizational Unit | Addressbook
microsoftaddressbook |  | Owner has Microsofts Addressbook properties |
cn | Name |
c | Business country |
department | Business department |
facsimiletelephonenumber | Business fax number |
givenname | First name |
homephone | Home phone number |
homepostaladdress | Home postal address |
info | Notes |
initials | Initials |
l | Business city |
mail | Email address |
mobile | Home cellphone number |
organizationname | Company name |
otherfacsimiletelephonenumber | Home fax number |
otherpager | Business pager number | can be "pager" too?
physicaldeliveryofficename | Location of office at work |
postaladdress | Business postal address |
postalcode | Business postal code |
sn | Last Name |
st | Business state/province |
telephonenumber | Business phone number |
title | Job title |
url | Business web page |
Netscape Address Book | top |  | default |
ou | Organizational Unit | Addressbook
netscapeaddressbook |  | Owner has Netscape's properties |
cn | Name |
cellphone | Cellphone number |
countryname | Country |
description | Description |
facsimiletelephonenumber | Fax number |
givenname | First Name |
homephone | Home phone number |
homeurl | Personal web page |
locality | Home city |
mail | Email address |
nickname | Nickname |
o | Company |
ou | Department |
pagerphone | Pager number |
postalcode | Home postal code |
sn | Last name |
st | State |
streetaddress | Home postal address |
telephonenumber | Business phone number |
title | Title |
xmozillaanyphone | Business phone number |
xmozillanickname | Nickname | Same as nickname
xmozillausehtmlmail | Client uses html mail | TRUE
Netscape roaming access | top |  | default |
ou | Organizational Unit | Roaming

> Note: Netscape and Microsoft use the addressbook entries in a slightly different way. Netscape stores a postal address in the streetaddress entry in a base64 encoded string, while Microsoft uses the postaladdress entry. However, when a streetaddress entry is present, Microsoft uses this instead of the postaladdress entry, but it's value is stored plaintext, not base64 encoded. So you cannot use them at the same time.

More information about Ldap schema's in general can be found on Linux Center. I found a document describing Microsoft Addressbook's properties on the Microsoft Developers Network.

Beware, the description given on the Microsoft page doesn't match the fields where the content shows up in address book. Also, not all fields in address book contain information, but if the listed keys don't work I wouldn't know which keys do work.

Prev | Home | Next
SSL/TLS and SSL/TLS wrappers for LDAP |  | Example files