Comment migrer d’un annuaire Google AD vers un LDAP en utilisant CROWD


Publié par
Anand UNADKAT

5 avril 2016

Depuis que Crowd propose un connecteur avec Google AD, beaucoup d’entre vous ont choisi de l’utiliser pour gérer l’authentification de vos utilisateurs. Cela fonctionne généralement très bien, mais dans le cas où la taille de votre organisation augmente, il est probable que vous souhaitiez migrer vers une solution telle que le LDAP tout en conservant l’historique de vos utilisateurs.

Ce scénario est loin d’être facile à réaliser et après de multiples recherches et la réalisation d’un projet client, voici les étapes que je souhaite partager et qui sont nécessaires pour migrer de Google AD vers le LDAP en utilisant Crowd.

Scénario de départ :

  • Deux annuaires utilisateurs : Google AD & LDAP
  • Le LDAP est connecté aux autres applications du SI et nous voulons que les applications Atlassian le soient aussi
  • Les deux annuaires stockent les utilisateurs de manière différente
  • Google AD stocke les utilisateurs par ‘prénom.nom’ (Exemple : joe.bloggs)
  • LDAP stocke les utilisateurs par ‘nom+initiale prénom’ (Exemple : bloggsj)
  • L’objectif est de passer du stockage ‘Google AD’ au stockage ‘LDAP’

Le premier défi a été de changer les noms d’utilisateurs dans l’annuaire Google tout en conservant leur historique afin qu’ils correspondent aux conventions de nommage LDAP.

Nous avons atteint ceci de la manière suivante.

Il est important d’utiliser la version 2.8 de Crowd car nous avons eu beaucoup de bugs avec la version 2.7. De manière générale, nous avons utilisé toutes les dernières versions possibles des outils Atlassian pour notre projet.

Etape 1 :

Extraire les utilisateurs et leurs groupes d’appartenance de l’annuaire Google depuis Crowd. La méthodologie d’extraction est détaillée dans la base de connaissance Atlassian.

Etape 2 :

Créer un répertoire utilisateur temporaire dans Crowd appelé ‘Temp’. La procédure est décrite ici.

Etape 3 : 

Importer le fichier CSV dans ‘Temp’. Dans le cas où les appartenances aux groupes ne sont pas importées, relancer la procédure.

Etape 4 :

Les choses sérieuses commencent : ajouter le répertoire ‘Temp’ à toutes vos applications Atlassian et le placer en première position. ‘Temp’ doit être en première position, suivi par le répertoire Google.

Etape 5 :

Se connecter aux applications en tant qu’administrateur interne et lancer une nouvelle synchronisation complète. Cela se fait en éditant la configuration du répertoire Crowd, en cliquant sur ‘Test et sauvegarder’ puis en synchronisant à nouveau.

Une fois cette étape passée, les utilisateurs ne pourront plus se connecter aux applications car le répertoire d’utilisateur ‘Temp’ ne stocke pas les mots de passe.

Une fois la synchronisation terminée, vérifier que les utilisateurs sont toujours présents dans les applications et que leurs historiques restent intacts.

Etape 6 : 

Cette étape va vous permettre d’éprouver vos compétences Excel : dans l’étape 1 nous avons extrait les utilisateurs et leurs groupes dans un fichier. Nous allons utiliser ce fichier dans Excel pour créer un script de base de données qui fera une mise à jour des noms d’utilisateur en remplaçant le formalisme ‘nom.prénom’ par ‘nom.première lettre du prénom’

Il y’a plusieurs façons de faire cela et pour ma part j’ai choisi d’utiliser la fonction RECHERCHEV d’Excel.

Pour cela, j’ai extrait les donnée du LDAP avec la même procédure que lors de l’étape 1. Ensuite, j’ai utilisé la fonction RECHERCHEV sur ces deux classeurs pour comparer les utilisateurs en me basant sur leurs noms, leurs adresses email et ajouter leur nom d’utilisateur dans le premier fichier. Vous avez ainsi les deux noms d’utilisateurs dans le même classeur et il ne vous reste plus qu’à ajouter le script suivant pour chaque ligne :

update cwd_user, cwd_membership set cwd_user.user_name =’bloggsj’, cwd_user.lower_user_name = ‘bloggsj’, cwd_membership.child_name = ‘bloggsj’, cwd_membership.lower_child_name = ‘bloggsj’ WHERE cwd_user.user_name = ‘joe.bloggs’ AND cwd_membership.child_name = ‘joe.bloggs’ AND cwd_user.directory_id = ‘<tem internal directory id in crowd>’;

Etape 7 : 

Exécuter ce script dans la base de données de CROWD en copiant la requête générée dans le fichier Excel et en la collant dans une interface d’accès à la base de données.

Avant d’exécuter ce script, vérifier que toutes les applications connectées à CROWD ne sont plus connectées à l’annuaire Google.

Il est possible que la mise à jour de quelques utilisateurs ne fonctionne pas… C’est classique, il suffira de corriger manuellement le script pour que tout fonctionne !

Etape 8 :

Faire une synchronisation manuelle avec toutes les applications comme lors de l’étape 5 afin de s’assurer que les noms d’utilisateurs ont bien été mis à jour et vérifier que leurs historiques sont restés intacts.

Etape 9 :

Si tout est OK, ajouter le LDAP à chaque application dans Crowd. Si vous n’avez pas encore associé Crowd et LDAP, vous pouvez vous référer à la procédure suivante pour le faire avant l’ajout des applications au LDAP.

Lorsque cela est fait, vous pouvez supprimer le répertoire interne ‘Temp’ et effectuer une synchronisation manuelle avec toutes les applications comme lors de l’étape 5 afin de s’assurer que les noms d’utilisateurs ont bien été mis à jour et vérifier que leurs historiques sont restés intacts.

Afin d’éviter les problèmes de permission et notamment lors de la connexion des utilisateurs, il est important que tous les groupes soient créés dans Crowd.

Si la procédure décrite dans cet article vous paraît toujours compliquée, n’oubliez pas que vous pouvez contacter Valiantys à tout moment !