Last question first: The LDAP/JNDI client is part of the system, so you don't have to request it specifically.
LDAP is a general-purpose directory system and in the case of LDAP, "directory" is more like "telephone directory" than "filesystem directory", despite its hierarchical capabilities.
The LDAP JNDI Realm for Tomcat works by doing LDAP searches. There's not predefined "user" or "role" type, just entries that match the searches. If you were using Active Directory, you'd probably want to use entries that are defined for Windows Authentication, and the same applies to Solaris, but in a generic LDAP environment, you can use whatever you like.
Here's a sample user definition:
This user is only accessing via the Internet, so there's no Unix account attributes on that person's directory entry.
Here's a role definition:
People whose member UID's are in this group are authorized to log into the Legacy Trac system. It's not a Java webapp, so it only has one grouping. For J2EE apps, there would be groups for each role, so I'd set up group dn's such as cn=tracusers_submitter,ou=legacy,ou=groups,dc=mousetech,dc=com, as well as cn=tracusers_dispatcher,ou=legacy,ou=groups,dc=mousetech,dc=com and so forth.
Customer surveys are for companies who didn't pay proper attention to begin with.