Comment configurer Redmine => Authentification Active Directory?

9

Tout d'abord, je ne suis pas un administrateur AD sur place, mais mon responsable m'a demandé d'essayer d'obtenir l'intégration de mon installation Redmine personnelle avec ActiveDirectory afin de la tester pour un déploiement à plus grande échelle.

Notre serveur AD est à l'hôte: port ims.example.com:389et j'ai un utilisateur IMS/me.

En ce moment, j'ai également un utilisateur medans Redmine utilisant l'authentification locale.

J'ai créé une méthode d'authentification LDAP ActiveDirectory dans RedMine avec les paramètres suivants:

Host: ims.example.com
Port: 389
Base DN: cn=Users,dc=ims,dc=example,dc=com

On-The-Fly User Creation: YES
Login: sAMAccountName
Firstname: givenName
Lastname: sN
Email: mail

Tester cette connexion fonctionne très bien.

Je ne l'ai cependant pas authentifié avec succès.

J'ai créé un utilisateur administrateur de sauvegarde afin de pouvoir revenir au mecompte si je casse des choses, puis j'ai essayé de changer mepour utiliser les informations d'identification ActiveDirectory. Cependant, une fois que je le fais, rien ne fonctionne pour me connecter. J'ai essayé toutes ces options de nom de connexion:

  • me
  • IMS/me
  • IMS\me

J'ai utilisé mon mot de passe de domaine connu, mais pas de joie.

Alors, quel paramètre ai-je mal ou quelles informations dois-je acquérir pour que cela fonctionne?

Chris R
la source

Réponses:

13

D'accord, voici donc les paramètres spécifiques dont j'avais besoin pour que cela fonctionne:

Host: ims.example.com
Port: 389
User: MYDOMAIN\accountName
Password: *******
Base DN: dc=mydomain,dc=example,dc=com

On-The-Fly User Creation: YES
Login: sAMAccountName
Firstname: givenName
Lastname: sN
Email: mail

L'astuce consistait à supprimer cn=Usersle DN de base, après quoi toutes sortes de choses se sont réunies.

L'autre chose notable était l'inclusion d'un utilisateur pour lire le répertoire.

Enfin, l'utilisateur qui se connecte utilise son nom d'utilisateur sans qualification de domaine et son mot de passe de domaine comme d'habitude. Notre domaine ne nécessite pas d'adresse e-mail, il y a donc une étape supplémentaire où l'adresse e-mail doit être définie lors de la création de l'utilisateur, mais c'est assez simple.

Chris R
la source
Ahh ... Je n'ai même pas pensé à vous demander si vos comptes d'utilisateurs étaient sous le conteneur par défaut "CN = Users, ..." ou non.
Evan Anderson
Il serait plus utile de savoir comment j'aurais pu déterminer cela. Je ne suis arrivé à cette configuration que par essais et erreurs.
Chris R
Cela a été en grande partie un essai et une erreur pour moi aussi, car j'ai roulé à la main mon propre plugin d'authentification AD pour Devise qui ne nécessite même pas de compte AD Read spécifique; il se lie et s'authentifie à AD en utilisant la connexion par nom d'utilisateur / mot de passe. Cela m'a été très utile, Chris, merci.
Ben Kreeger
Une précision (cela m'a pris un après-midi entier): le compte doit être formaté comme un nom distinctif - pas un nom de connexion.
coz
Pour moi, le correctif consiste à ajouter le domaine au compte d'utilisateur de requête, par exemple la partie MYDOMAIN.
Andy Arismendi
6

Une astuce pour trouver le DN de base pour l'authentification LDAP ActiveDirectory consiste à vérifier le nom de domaine complet des utilisateurs. vous pouvez vérifier cela avec:

whoami /FQDN

si vous êtes connecté en tant qu'utilisateur, ce qui renvoie quelque chose comme

CN=John Doe,OU=users,OU=department,DC=corp,DC=domain,DC=com

et le DN de base peut être trouvé en supprimant le premier CN.

OU=users,OU=department,DC=corp,DC=domain,DC=com
Remco Schoeman
la source
Merci pour cela. Je n'étais pas au courant de cette commande, très utile.
jasonmmiraglia
4

Je ne connais pas Redmine, mais il semble que vous essayez de faire une liaison anonyme à Active Directory pour valider les informations d'identification. Ça ne va pas marcher. Ayant configuré plusieurs produits pour l'intégration LDAP avec AD, c'est un problème commun que j'ai vu.

Par défaut, AD requiert que les clients s'authentifient lors de la liaison au répertoire pour effectuer des requêtes.

Jetez un œil à cette publication sur le wiki de Redmine concernant la configuration de l'authentification LDAP. Ils parlent de spécifier un compte et un mot de passe pour Redmine à utiliser (celui qui a le droit de lire le répertoire - un simple «utilisateur de domaine» fera) pour se lier au répertoire.

Evan Anderson
la source
Sous quelle forme dois-je mettre le nom d'utilisateur? Ils n'expliquent pas vraiment cela dans la publication wiki (qui était de toute façon mon point de départ pour ce processus)
Chris R
Plus précisément, j'ai essayé IMS\meet cela ne semblait pas fonctionner. Je ne peux pas non plus savoir pourquoi cela échoue.
Chris R
Je spécifierais le nom d'utilisateur de liaison dans la syntaxe DOMAIN \ samAccountName. En ce qui concerne la raison de l'échec, je recommanderais d'obtenir un renifleur (tcpdump, Wireshark, Microsoft "Network Monitor" intégré, etc.) et d'apporter cela pour résoudre le problème. Il n'y a pas de moyen plus rapide de comprendre ce qui est dit sur le fil que de regarder ce qui est dit sur le fil. (Cela peut paraître idiot, mais beaucoup de gens ne pensent jamais à y regarder ...) Ensuite, au moins, vous pouvez voir si les paramètres que vous avez spécifiés sont passés comme vous vous y attendez.
Evan Anderson
Wireshark se révèle être une aubaine ici. Merci pour cette astuce. J'ai trouvé quelques problèmes pour cela, et je reviendrai et publierai les détails sous peu.
Chris R
En voyant ce que les boîtes se disent, la cause de nombreux problèmes est immédiatement claire. Je suis heureux de savoir que vous avez réussi à le faire marcher!
Evan Anderson
3

Utilisez un navigateur ldap et vérifiez visuellement la structure ... luma sur ubuntu fonctionne bien, ldapper pour le mac également.


la source
Cela ne fonctionnait pas réellement avec mon serveur LDAP, mais je peux voir comment cela serait utile.
Chris R