LDAP Configuration

We use the Spring Security package ( Version 1.0.6 ). You can find the full configuration documentation here: Grails-Spring-Security-LDAP


Internal LDAP Settings

grails.plugins.springsecurity.ldap.authorities.retrieveGroupRoles = false
grails.plugins.springsecurity.ldap.authorities.retrieveDatabaseRoles = true
grails.plugins.springsecurity.ldap.useRememberMe = false

Below are some examples VetView LDAP configurations.


University of Georgia

VetView Configuration File:

grails.plugins.springsecurity.ldap.context.managerDn=<System Account>@uga.edu
grails.plugins.springsecurity.ldap.context.managerPassword=<password>
grails.plugins.springsecurity.ldap.context.server=ldaps://lds.uga.edu:636
grails.plugins.springsecurity.ldap.search.base=ou=users,o=uga
grails.plugins.springsecurity.ldap.search.filter=(cn={0})
grails.plugins.springsecurity.ldap.authenticator.dnPatterns=cn={0},ou=users,o=uga
grails.plugins.springsecurity.ldap.vetview.searchPattern={0}@uga.edu

Other Steps:

  • Add Security Certificate into the Servers JVM
    • ..\..\bin\Keytool -import -trustcacerts -keystore cacerts -storepass changeit -noprompt -alias InCommon  -file c:\Certificates\InCommon_intermediate.cer
    • ..\..\bin\keytool -import -trustcacerts -keystore cacerts -storepass changeit -noprompt -alias UserTrust -file c:\Certificates\UserTrust_root.cer
  • Verify Correct JVM used on the Server

                       

  • Request a Firewall Exception between the Webserver and the LDAP server.

Auburn University

VetView Configuration File:

//Turn this switch on to enable Active Directory/LDAP Integration
grails.plugins.springsecurity.ldap.active = true

// In particular, the Admin Account is only required to located the full DN of the user within the search base.
// Once that's found you can just bind as the real user.
grails.plugins.springsecurity.ldap.context.managerDn = vvldap@vetmed.auburn.edu
grails.plugins.springsecurity.ldap.context.managerPassword = <password>

// User-specific LDAP Configuration
grails.plugins.springsecurity.ldap.context.server = ldap://dc.vetmed.auburn.edu:389/
grails.plugins.springsecurity.ldap.authorities.ignorePartialResultException = true
grails.plugins.springsecurity.ldap.search.base = OU=CVM_Users,DC=vetmed,DC=auburn,DC=edu
grails.plugins.springsecurity.ldap.search.filter = (sAMAccountName={0})

grails.plugins.springsecurity.ldap.search.searchSubtree = true
grails.plugins.springsecurity.ldap.auth.hideUserNotFoundExceptions = false

// enable group support
grails.plugins.springsecurity.ldap.authorities.retrieveGroupRoles = true
grails.plugins.springsecurity.ldap.authorities.groupSearchBase ='ou=*,dc=*,dc=*'
grails.plugins.springsecurity.ldap.authorities.groupSearchFilter = 'member={0}'

Other Information:


Cornell University

VetView Configuration File:

grails.plugins.springsecurity.ldap.context.managerDn=CN=VM-SVCVetViewAuth,OU=VM-ServiceAccounts,OU=HoldingIDs,OU=IDs,OU=VM,OU=DelegatedObjects,DC=cornell,DC=edu
grails.plugins.springsecurity.ldap.context.managerPassword=<password>
grails.plugins.springsecurity.ldap.context.server=<server address>
grails.plugins.springsecurity.ldap.search.base=OU=VM,OU=Staff,OU=NetIDs,OU=CUniv,DC=cornell,DC=edu
grails.plugins.springsecurity.ldap.search.filter=(uid={0})

Other Information:

The only difference in our setup then others is we combined the managerDN w/ the search base (I.e. where to start). 

University of Minnesota

VetView Configuration File:

grails.plugins.springsecurity.ldap.context.managerDn=cn=<username>,ou=Organizations,o=University of Minnesota,c=US
grails.plugins.springsecurity.ldap.context.managerPassword=<password>
grails.plugins.springsecurity.ldap.context.server=ldaps://ldap-dsee.umn.edu:636
grails.plugins.springsecurity.ldap.search.base=ou=People,o=University of Minnesota,c=US
grails.plugins.springsecurity.ldap.search.filter=(cn={0})

Other Information:

Univserity of Missouri

VetView Configuration File:

grails.plugins.springsecurity.ldap.active=true
grails.plugins.springsecurity.ldap.context.managerDn=umcvetmedldap@missouri.edu
grails.plugins.springsecurity.ldap.context.managerPassword=<password>
grails.plugins.springsecurity.ldap.context.server = ldap://col.missouri.edu:3268/
grails.plugins.springsecurity.ldap.authorities.ignorePartialResultException = true
grails.plugins.springsecurity.ldap.search.base = DC=edu
grails.plugins.springsecurity.ldap.search.filter = (sAMAccountName={0})
grails.plugins.springsecurity.ldap.search.searchSubtree = true
grails.plugins.springsecurity.ldap.auth.hideUserNotFoundExceptions = false

Other Information:

There are multiple domains (UMC-USERS/col.missouri.edu for faculty and staff, and TIGERS/tig.mizzou.edu for students) so we point to the Global Address Catalog port 3268 instead of 636 and use a search base of DC=edu. The search filter is on sAMAccountName, so it’s looking for the AD username (MU calls it PawPrint).