3 votes

Comment obtenir la chaîne de connexion LDAP pour mon ActiveDirectory ?

J'essaie de faire fonctionner le plugin LDAP de Grails avec mon Active Directory.

Le plugin nécessite beaucoup de choses avec lesquelles je ne suis pas vraiment familier car je ne connais pas grand chose à Active Directory.

Voici les éléments requis par le plugin :

// LDAP config
grails.plugins.springsecurity.ldap.context.managerDn = '[distinguishedName]'
grails.plugins.springsecurity.ldap.context.managerPassword = '[password]'
grails.plugins.springsecurity.ldap.context.server = 'ldap://[ip]:[port]/'
grails.plugins.springsecurity.ldap.authorities.ignorePartialResultException = true // typically needed for Active Directory
grails.plugins.springsecurity.ldap.search.base = '[the base directory to start the search.  usually something like dc=mycompany,dc=com]'
grails.plugins.springsecurity.ldap.search.filter="sAMAccountName={0}" // for Active Directory you need this
grails.plugins.springsecurity.ldap.search.searchSubtree = true
grails.plugins.springsecurity.ldap.auth.hideUserNotFoundExceptions = false
grails.plugins.springsecurity.ldap.search.attributesToReturn = ['mail', 'displayName'] // extra attributes you want returned; see below for custom classes that access this data
grails.plugins.springsecurity.providerNames = ['ldapAuthProvider', 'anonymousAuthenticationProvider'] // specify this when you want to skip attempting to load from db and only use LDAP

// role-specific LDAP config
grails.plugins.springsecurity.ldap.useRememberMe = false
grails.plugins.springsecurity.ldap.authorities.retrieveGroupRoles = true
grails.plugins.springsecurity.ldap.authorities.groupSearchBase ='[the base directory to start the search.  usually something like dc=mycompany,dc=com]'
// If you don't want to support group membership recursion (groups in groups), then use the following setting
// grails.plugins.springsecurity.ldap.authorities.groupSearchFilter = 'member={0}' // Active Directory specific
// If you wish to support groups with group as members (recursive groups), use the following
grails.plugins.springsecurity.ldap.authorities.groupSearchFilter = '(member:1.2.840.113556.1.4.1941:={0})' // Active Directory specific

J'utilise Windows 2008 Server et je sais ce qui suit :

IP = 10.10.10.90
Name = bold.foo.bar (This is what I see under Active Directory Users and Computers)
Domain =`BOLD`
Group = `MANAGERS`
Users = USERA (part of MANAGERS group) and USERB (not part of MANAGERS group)

Pregunta

Puis-je obtenir de l'aide pour remplir certaines ou la plupart des configurations requises ? J'ai accès aux services de domaine Active Directory dans le gestionnaire de serveur, donc si la plupart des informations proviennent de là, je peux les obtenir.

PS : Je n'ai pas le luxe d'avoir un administrateur système pour m'aider sur ce projet. Je suis donc le développeur qui doit remplir les deux rôles :)

0 votes

Certains d'entre eux sont déjà remplis ( search.searchSubtree , search.filter ) d'autres dépendront de la configuration de votre environnement, ceux-ci apparaissent entre crochets. Quelle est la ligne dont vous n'êtes pas sûr ? Votre titre mentionne "chaîne de connexion LDAP" mais vous avez environ 20 lignes de configuration ici.

4voto

Ashish Sadhwani Points 11

Active Directory Explorer (AdExplorer) de Microsoft Windows Sysinternals suite peut vous aider à trouver DN y Base de recherche les informations dont vous aviez besoin.

AD Explorer

Mais il est préférable d'acquérir des concepts LDAP pour avoir plus de contrôle, par exemple, vous voulez ajouter plus de search.filter ou pour obtenir plus d'attributs ( search.attributesToReturn ) dans les résultats de recherche (vous souhaitez également obtenir le numéro de téléphone de l'utilisateur). Liens utiles :

1voto

SF. Points 4242

La chose la plus importante avec Grails et AD est d'utiliser ActiveDirectoryLdapAuthenticationProvider plutôt que LdapAuthenticationProvider, car cela vous évitera bien des soucis. Vous pouvez alors configurer l'authentification AD en quelques lignes seulement :

Dans ressources.groovy :

// Domain 1
ldapAuthProvider1(ActiveDirectoryLdapAuthenticationProvider,
        "mydomain.com",
        "ldap://mydomain.com/"
)

// Domain 2
ldapAuthProvider2(ActiveDirectoryLdapAuthenticationProvider,
        "mydomain2.com",
        "ldap://mydomain2.com/"
)

Dans Config.groovy :

grails.plugin.springsecurity.providerNames = ['ldapAuthProvider1', 'ldapAuthProvider2']

C'est tout le code dont vous avez besoin. Vous pouvez pratiquement supprimer tous les autres paramètres grails.plugin.springsecurity.ldap.* dans Config.groovy car ils ne s'appliquent pas à cette configuration AD.

Pour une certaine documentation, voir : http://docs.Spring.io/Spring-security/site/docs/3.1.x/reference/springsecurity-single.html#ldap-active-directory

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X