You really don't need to build a custom schema for this. We accomplished 1-3, and 5-8 using just inetOrgPerson and posixAccount with a little bit of Trac custom schema (downloaded from the web) thrown in.

There are two big problems with learning how to deploy an LDAP directory:

  • By all appearances, there is some secret magic to determining a good layout for the directory.
  • There is no secret magic to determining a good layout for the directory.

My advice is to start small, use existing schemas, and integrate things one step at a time. It is reasonably easy to add information to the directory, or layer new objectClasses on top of entities. It only gets hard when you want to move or delete information from the directory.

Use a mostly flat organizational scheme, too, or you will go insane.

Good luck, I promise it is easier than it looks.