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.