When LDAP support is enabled for NFS Volume Services, you are prompted for the following information.
- A service account
- The service account login & password
- The LDAP host & port
- The distinguished name for the organizational unit on your LDAP server where your users reside.
This information is combined with the information a user provides when creating and binding their services.
- A user creates an NFS volume service & provides the NFS server and mount information.
- A user binds the NFS volume service to their app. The binding provides the mount path inside the container and also provides the user's LDAP credentials.
The NFS Volume Services driver uses all of this information as it mounts NFS volumesĀ as the application container is started. When a container is starting, the volume services driver is responsible for mounting the NFS volume.
With LDAP enabled, it will take the following steps to mount the volume.
- It makes a connection to the LDAP server & port defined in the NFS Volume Services configuration from Ops Manager. It connects with the service account and password.
- When connected, it executes an LDAP search starting at the OU (organizational unit) specified in the NFS Volume Services configuration in the Ops Manager and recursively looks through the subtree. It uses the filter
(&(objectClass=User)(cn=<username>)
where username
is the username entered by the user as they bind the volume service to their app. The filter is not configurable at this time. - If the search from the previous step returns a user, the Volume Services driver will then attempt to bind to the LDAP server as this user with the password that was specified by the user when the user bound the volume service to his or her app.
- If the driver is successful in binding with the user's credentials, it will then take the uid and gid from that user's LDAP record.
- The driver will mount the NFS volume using the UID and GID that were retrieved from LDAP. If the mount operation is successful, the container will continue its start up process.
If any of the steps above fail, for example the user cannot be found or binding as the user fails, the driver will fail and this will cause the application container to fail to start. Details about why the mount failed can be found in the
nfsv3driver
logs on the Cell where the application container attempted to start.