arcopole Studio Annexe 4 Intégration Active Directory et processus d authentification Site du programme arcopole : www.arcopole.fr Auteur du document : Esri France Version de la documentation : 1.2.0.3 Date de dernière mise à jour : 14/10/2015
Sommaire Table des matières I Introduction... 3 II Vision générale du processus d authentification d un utilisateur... 4 II.1 Etape 1 : Récupération du mode d authentification associé à l utilisateur... 4 II.2 Etape 2 : Authentification auprès du système adéquat... 5 II.3 Etape 3 : Création d un token pour l utilisateur en question... 6 II.4 Etape 4 : Mise à jour de la liste des applications de l utilisateur... 7 III Intégration avec un annuaire d entreprise (Active Directory)... 8 III.1 Déclaration de l annuaire dans la configuration d arcopole Studio... 8 III.1.1 Connexion à l annuaire Active Directory... 9 III.1.2 Choix des informations à répliquer... 9 III.1.3 Mappage des attributs... 10 III.2 Réplication de l annuaire Active Directory... 10 III.2.1 Principe de la réplication... 10 III.2.2 Lancement de la réplication... 11 III.3 Exemple de résultat... 11 III.3.1 Mise à jour du fichier de stockage des utilisateurs... 11 III.3.2 Consultation dans arcopole Studio... 11 IV Annexes... 12 IV.1 Modification du paramètre LDAP : MAX_PAGE_SIZE... 12 14/10/2015 Version doc. : 1.2.0.3 Page 2 sur 13
I INTRODUCTION ArcOpole Studio propose depuis son lancement, une gestion fine des utilisateurs. Ces fonctionnalités permettent aux administrateurs SIG de gérer les droits d accès aux données (sur les MapServices, couches et champs) et sur les fonctionnalités. Par défaut, la création des utilisateurs et des groupes se fait manuellement dans les interfaces d arcopole Studio. Les organisations utilisant arcopole Studio souhaitent parfois un mécanisme d authentification des utilisateurs s appuyant sur l annuaire centralisé des utilisateurs (annuaire LDAP). Cette nouvelle possibilité a été ajoutée en version 2.2 et des scripts ont été développés pour une connexion facilitée avec l annuaire d entreprise de Microsoft, Active Directory (AD) notez qu une connexion à d autres annuaires LDAP est possible mais nécessite des développements spécifiques à votre annuaire (contactez Esri France pour en savoir plus). Cette fonction permet de s intégrer avec les systèmes d informations et facilite la création initiale et la gestion au long cours des utilisateurs. Aussi, deux modes de gestion des utilisateurs complémentaires sont donc disponibles : gestion intégrée avec l annuaire Active Directory, gestion manuelle dans arcopole Studio. Ces deux modes de gestions peuvent être exclusifs ou bien conjoints afin d avoir certains utilisateurs ou groupes issus de l annuaire et d autres créés manuellement. Le modèle de gestion mixte permet par exemple de déléguer la gestion de tous les utilisateurs interne à l annuaire Active Directory et de gérer les accès des prestataires externes indépendamment. Il est également possible d utiliser plusieurs annuaires Active Directory au besoin. Dans tous les cas, quel que soit le mode de gestion retenu, toute la richesse de la gestion des droits proposée par arcopole Studio reste disponible pour tous les utilisateurs. Le présent document décrit : le fonctionnement de l intégration avec l annuaire et les étapes permettant à un utilisateur de se connecter une fois cette intégration réalisée, la configuration à appliquer pour connecter arcopole Studio avec votre annuaire Active Directory. Information concernant le support : La capacité de connexion d arcopole Studio à Active Directory est fonctionnelle dans de nombreuses organisations. L expérience nous a montré que chaque annuaire est différent et nous avons essayé d alimenter cette documentation avec toutes les informations nécessaires. Toutefois, si vous ne parvenez pas à configurer correctement la connexion avec l annuaire Active Directory de votre organisation, nous vous demanderons de bien vouloir recourir à une prestation de service afin que nous puissions vous aider. L intégration avec un annuaire Active Directory (ou tout autre annuaire LDAP) sort des prérogatives du support auquel vous avez le droit si vous avez souscrit un contrat de maintenance arcopole. 14/10/2015 Version doc. : 1.2.0.3 Page 3 sur 13
II VISION GENERALE DU PROCESSUS D AUTHENTIFICATION D UN UTILISATEUR L authentification d un utilisateur passe par 4 étapes complémentaires qui garantissent la simplicité pour l utilisateur final et la sécurité des échanges. Ces étapes sont les suivantes : 1. Récupération du mode d authentification associé à l utilisateur 2. Authentification auprès du système adéquate 3. Création d un token pour l utilisateur en question 4. Mise à jour de la liste des applications de l utilisateur II.1 ETAPE 1 : RECUPERATION DU MODE D AUTHENTIFICATION ASSOCIE A L UTILISATEUR ArcOpole Studio permet à des utilisateurs de différentes origines de se connecter. Ainsi, certains utilisateurs peuvent être gérés dans l annuaire d entreprise et d autres directement dans arcopole Studio. Cela offre la possibilité par exemple d utiliser l annuaire Active Directory (LDAP dans le schéma) pour les agents et les élus de la collectivité et de gérer de manière distincte les prestataires extérieurs. ❶ ❷ ❸ ❹ L utilisateur se connecte à la page d accès aux applications. S il arrive non authentifié, seules les applications ouvertes à tous sont affichées. S il arrive déjà authentifié (via un système d authentification automatique, type SSO par exemple), la page affiche automatiquement les applications de l utilisateur. Dans le cas où l utilisateur doit s authentifier, il le fait via le masque prévu à cet effet. Il indique donc son nom d utilisateur et son mot de passe. Ces informations sont transmises au serveur arcopole Studio. ArcOpole Studio vérifie alors dans la liste des utilisateurs auprès de quel système l utilisateur en question doit être authentifié (annuaire Active Directory n 1, annuaire Active Directory n 2, utilisateur standard arcopole Studio ) 14/10/2015 Version doc. : 1.2.0.3 Page 4 sur 13
II.2 ETAPE 2 : AUTHENTIFICATION AUPRES DU SYSTEME ADEQUAT L information de gestion du système d authentification récupérée, arcopole Studio soumet le nom d utilisateur et le mot de passe au système en question. Schématiquement, deux cas peuvent se produire soit l utilisateur est géré par un annuaire Active Directory (LDAP dans le schéma), soit il est géré via le processus manuel intégré dans arcopole Studio. ❺ Pour un utilisateur géré par un annuaire Active Directory, arcopole Studio envoie les informations d authentification de l utilisateur. Si le retour de l annuaire est positif, le processus d authentification continu sinon un message d erreur est renvoyé à l utilisateur. Pour un utilisateur géré manuellement dans arcopole Studio, les informations d authentification sont automatiquement validées par le processus interne. 14/10/2015 Version doc. : 1.2.0.3 Page 5 sur 13
II.3 ETAPE 3 : CREATION D UN TOKEN POUR L UTILISATEUR EN QUESTION Une fois que les informations envoyées par l utilisateur ont été validées, le serveur créé un token (jeton d authentification associé à l utilisateur). ❻ Le serveur créé un token pour l utilisateur qui s est identifié. Celui-ci sera conservé sur le serveur et permettra d assurer la persistance de la session de l utilisateur et donc de son authentification. 14/10/2015 Version doc. : 1.2.0.3 Page 6 sur 13
II.4 ETAPE 4 : MISE A JOUR DE LA LISTE DES APPLICATIONS DE L UTILISATEUR Une fois ces étapes franchies, l information de la bonne identification de l utilisateur est renvoyée et la page d accès aux applications se met à jour avec la liste des applications auxquelles l utilisateur a le droit. ❼ ❽ L information comme quoi l utilisateur s est correctement authentifié est renvoyée. La page d accès aux applications demande la liste des applications auxquelles l utilisateur courant a le droit. 14/10/2015 Version doc. : 1.2.0.3 Page 7 sur 13
III INTEGRATION AVEC UN ANNUAIRE D ENTREPRISE (ACTIVE DIRECTORY) Comme indiqué dans le paragraphe précédent, l authentification des utilisateurs peut être réalisée soit auprès de l annuaire Active Directory (action 5) soit avec le processus interne à arcopole Studio (action 5 ). Dans les deux cas, la gestion des droits applicatifs est réalisée dans arcopole Studio par l administrateur SIG. Aussi, la liste des utilisateurs doit être disponible dans arcopole Studio. Celle-ci est synchronisée par un script exécuté périodiquement. Afin de mettre en œuvre l intégration avec l annuaire d entreprise Active Directory, il est nécessaire de : 1. Déclarer d un annuaire (ou plusieurs) dans la configuration d arcopole Studio. Cela permet à arcopole Studio de savoir sur quel(s) annuaire(s) travailler et quelles sont les informations à importer. 2. Lancer le script de réplication partielle de l annuaire : ce script (optimisé pour Active Directory) maintient les informations du fichier des utilisateurs et groupes internes à arcopole Studio à jour en fonction des mises à jour réalisées dans l annuaire Active Directory. III.1 DECLARATION DE L ANNUAIRE DANS LA CONFIGURATION D ARCOPOLE STUDIO ArcOpole Studio est livré avec un fichier de configuration contenant un exemple commenté de définition d accès à un annuaire. L adaptation de cette configuration se fait par l édition du fichier \WEB-INF\orionConfig\repository_fmk.xml <Directories> <!-- filter par defaut vaut : (objectcategory=user) --> <Ldap lid="ldap01" description="annuaire Entreprise" url="ldap://example.com:389" login="cpt_service" pass="pass_service" domain="domain" filter="" searchbaseusers="ou=agences,ou=users,dc=example,dc=com" searchbasegroups="dc=example,dc=com" nogroup="include"> <GroupsFilter> <!-- <Include name="sig"/> <Exclude name="daf"/> --> </GroupsFilter> <Properties> <Property id="samaccountname" mapping="uid"/> <Property id="memberof"/> <Property id="sn" mapping="lastname"/> <Property id="givenname" mapping="firstname"/> <Property id="mail" mapping="email"/> </Properties> </Ldap> </Directories> Les paragraphes suivants décrivent le contenu de cet exemple. 14/10/2015 Version doc. : 1.2.0.3 Page 8 sur 13
III.1.1 Connexion à l annuaire Active Directory ldap1 : identifiant qui sera utilisé par arcopole Studio pour référencer cet annuaire Active Directory, example.com : adresse de l annuaire Active Directory La réplication de l annuaire utilise un compte de service (avec son mot de passe) déclaré sur le domaine, pour obtenir l ensemble des utilisateurs de l annuaire d une branche. cpt_service : login du compte de service utilisé pour la réplication pass_service : mot de passe du compte de service utilisé pour la réplication domain : domaine du compte de service et des utilisateurs III.1.2 Choix des informations à répliquer Les informations à répliquer depuis l annuaire sont définies par une requête LDAP. Vous pouvez soit utiliser la requête par défaut (objectcategory=user) et en définir les paramètres dans les balises searchbaseusers et searchbasegroups, ou bien définir la vôtre dans la balise filter (ex : filter = " (objectclass=user) "). Imaginons que l annuaire Active Directory que vous utilisez dispose de la structure suivante : L utilisation de la requête suivante importera tous les utilisateurs qui se trouvent sous l unité d organisation (Organisational Unit) appelé agence : OU=agences,OU=users,DC=example,DC=com : branche racine de l annuaire qui contient les éléments de classe user que l on veut répliquer. DC=example,DC=com : branche racine de l annuaire qui contient les groupes que l on souhaite répliquer Dans ce cas, ce sont les attributs par défaut suivants qui sont retournés : samaccountname, memberof, sn, givenname, mail. Note : si les utilisateurs et les groupes doivent être importés depuis la même branche, l attribut searchbasegroups n est pas nécessaire. La balise GroupFilter permet de définir éventuellement la liste des groupes à inclure (Include) ou à exclure (Exclude). Dans le cas de l inclusion, seuls les groupes indiqués sont importés. Le caractère joker * peut être utilisé en préfixe ou en suffixe afin de définir un ensemble de groupes. De plus l utilisation de la balise nogroup avec une valeur positionnée à «ignore» permet d exclure de l importation les utilisateurs sans groupe. 14/10/2015 Version doc. : 1.2.0.3 Page 9 sur 13
III.1.3 Mappage des attributs Les utilisateurs stockés dans le fichier repository d arcopole Studio disposent d un certain nombre de variables (nom, prénom, nom d utilisateur, email, direction, service, login, mot de passe). Ces informations sont stockées dans le fichier repository dans une série de propriétés correspondantes : La liste de propriétés permet de conserver ou changer le nom de l attribut dans lequel les valeurs vont être stockées dans le repository d arcopole Studio : id="samaccountname" mapping="uid" : la propriété LDAP samaccountname va être enregistrée dans la propriété arcopole Studio nommée uid. Cette dernière est la seule propriété obligatoire dans arcopole Studio ; elle correspond à l identifiant de l utilisateur et également à son login. Note : conformément aux règles d arcopole Studio, les identifiants utilisateurs ne doivent pas comporter d espaces. Les utilisateurs de l annuaire dont l identifiant déroge à cette règle ne seront pas importés. id="memberof : importe la propriété memberof et se traduit par l appartenance à des groupes dans arcopole Studio. id="sn" mapping="lastname" : la propriété LDAP sn va être enregistrée dans la propriété arcopole Studio lastname. III.2 REPLICATION DE L ANNUAIRE ACTIVE DIRECTORY La réplication modifie la définition des utilisateurs/groupes contenus dans le fichier de configuration en fonction des informations renvoyées par l annuaire Active Directory. Le processus de réplication fonctionne par ajout, modification et suppression. III.2.1 Principe de la réplication III.2.1.1 Ajout Le script vérifie l existence d un utilisateur (en s appuyant sur son UID). S il existe alors il s agit d une modification ; sinon il s agit d un ajout : Login est l UID de l annuaire, password est la concaténation du dn avec un certain nombre de caractères alphanumériques aléatoires, le tout hashé en MD5. Ainsi, le mot de passe de l utilisateur n est pas stocké dans le fichier repository d arcopole Studio. Auth est positionné à «ldapno», avec NO, l identifiant d annuaire que vous avez indiqué dans la configuration plus haut. Groupes source= «ldapno», name = groupe de l annuaire Propriétés source = «ldapno», name=nom de la propriété de l annuaire, ou sa correspondance (mapping) avec la valeur pour l utilisateur 14/10/2015 Version doc. : 1.2.0.3 Page 10 sur 13
III.2.1.2 Modification Lorsque l UID de l utilisateur est déjà présent dans le fichier repository d arcopole Studio, deux cas de modifications se présentent : 1. Cas d un utilisateur déjà présent avec une authentification arcopole L utilisateur était déjà existant dans arcopole Studio avant que l intégration avec l annuaire ne soit activée. Cet utilisateur passe alors en mode «ldap» : la propriété Auth prend la valeur de l annuaire configuré, l authentification passera maintenant par l annuaire. son mot de passe est écrasé par la concaténation du dn avec un certain nombre de caractères alphanumériques aléatoires hashés en MD5, tous les champs du flux sont insérés pour l utilisateur (groupes et propriétés). les groupes et propriétés précédemment gérées dans arcopole Studio ne sont pas écrasés, ils conservent leur valeur (avec leur source arcopole). 2. Cas d un utilisateur déjà avec une authentification ldap : Les valeurs déjà présentes sont écrasées, les nouvelles ajoutées, les anciennes supprimées. La source «ldapno» sert à filtrer les propriétés et rôles à mettre à jour. III.2.1.3 Suppression Le script parcourt la liste des utilisateurs typé ldapno. Si un utilisateur se trouve dans le fichier, mais pas dans l extraction (le flux) alors cet utilisateur est supprimé du fichier. III.2.2 Lancement de la réplication Le script de réplication est un fichier.bat situé dans le répertoire \Web- INF\orionConfig\replication.bat. Avant de le lancer, il vous faut : Arrêter le serveur Tomcat. Exécuter le fichier.bat. Un fichier de log du processus de réplication est créé : \Web- INF\logs\replication.log Cette réplication devant être rejouée régulièrement, nous vous conseillons de mettre en place une tâche planifiée afin qu il s exécute automatiquement. III.3 EXEMPLE DE RESULTAT III.3.1 Mise à jour du fichier de stockage des utilisateurs Une fois la réplication exécutée, les informations indiquées au III.1.2 se retrouvent intégrées dans le fichier \WEB-INF\orionConfig\repository_fmk.xml dans les parties users et groups. Les attributs importés depuis l annuaire se retrouvent ajoutés aux utilisateurs. III.3.2 Consultation dans arcopole Studio Une fois importés, les utilisateurs/groupes issus de l annuaire sont visibles dans arcopole Studio comme n importe quel autre utilisateur/groupe. L administrateur peut consulter la fiche associée dans laquelle les informations synchronisées avec l annuaire sont visibles, mais ne peuvent pas être modifiées. 14/10/2015 Version doc. : 1.2.0.3 Page 11 sur 13
IV ANNEXES IV.1 MODIFICATION DU PARAMETRE LDAP : MAX_PAGE_SIZE Les requêtes LDAP sous Active Directory disposent d un ensemble de limites afin d en assurer la performance et la sécurité. Ces règles définissent entre autres le nombre de requêtes LDAP exécutées simultanément, le nombre de connexions simultanées ou le nombre maximum d objets retournés pour une requête. Une requête LDAP sur l annuaire Active Directory retourne par défaut un maximum de 1000 objets via la valeur MaxPageSize. Nous allons donc voir comment modifier cette valeur à titre d exemple. Depuis une ligne de commande lancer : Ntdsutil Exécutez la commande : LDAP policies La connexion au serveur s effectue a l aide de «Connect to server SERVER» où SERVER est le nom du (ou d un de vos) contrôleur(s) de domaine. Une fois la connexion établie, quittez le menu server connections à l aide de la commande «q». Afficher les limites a l aide de la commande : show values 14/10/2015 Version doc. : 1.2.0.3 Page 12 sur 13
Le paramètre MaxPageSize se modifie à l aide de la commande suivante : Set MaxPageSize to 2500 Pour terminer, il faut valider la modification à l aide de la commande «commit changes». La prise en compte de cette modification est immédiate et ne nécessite pas de redémarrage du (des) contrôleur(s) de domaine. Source : http://www.alexwinner.com/articles/divers/54-ldappolicies.html 14/10/2015 Version doc. : 1.2.0.3 Page 13 sur 13