Installation‎ > ‎

2. Option import des utilisateurs Active Directory

Cette page a pour but d'expliquer le fonctionnement et paramétrage du module optionnel d'importation d'utilisateurs venant d'Active Directory.
Ce module est de type application Windows sans interface graphique. Il est très facile de créer une tâche planifiée dans Windows afin de planifier l'exécution automatique de cette application aussi souvent que nécessaire (une fois par jour, par heure, ...)

Que fait ce module ?

Il permet d'injecter dans la base de données AQManagerFullWeb des utilisateurs issus de groupes choisis de votre Active Directory. La finalité de cet import est de simplifier la gestion d'authentification à l'application AQManagerFullWeb. Il permet soit :
  • Option 1 : Connexion transparente (single-sign-on), les utilisateurs sont automatiquement reconnus sans le besoin de spécifier un nom d'utilisateur et un mot de passe.
  • OU Option 2 : Les utilisateurs utiliseront le même couple nom d'utilisateur/mot de passe que pour ouvrir leur session Windows. AQManagerFullWeb interrogera en temps réel Active Directory pour vérifier la validité des mots de passe saisis par les utilisateurs. 
Seuls les utilisateurs importés au préalable, via le module évoqué dans cette page, pourront se connecter à AQManagerFullWeb.

En savoir plus sur ces modes d'authentification : option 1 - option 2

Comment paramétrer ce module ?

Groupes Active Directory à prendre en compte

Le fichier "ldapGroups.xml", existant dans le même dossier que l'exécutable du module d'import, décrit quels groupes Active Directory vous souhaitez importer et quelles valeurs par défaut seront associées aux utilisateurs ainsi créés dans la base de données AQManagerFullWeb. A chaque groupe AD à importer, un bloc balise "group" sera déclaré dans le fichier xml. Voici un exemple illustrant la syntaxe :

<group ldapName="Developpeur" aqNumber="Super">
    <defaultValues>
      <!-- Francais -->
      <languageID>1</languageID>
      <!-- Journee -->
      <calendarID>1</calendarID>
      <!-- Motif par défaut sur DI - correctif -->
      <workRequestMotiveID>1</workRequestMotiveID>
      <!-- Motif par défaut sur OT - correctif -->
      <workOrderMotiveID>1</workOrderMotiveID>
      <!-- Sites de l'utilisateur -->
      <sites>,1,2,</sites>
      <isStaff>1</isStaff>
      <isLims>0</isLims>
    </defaultValues>
</group>

 Paramètre    Exemple de valeur Signification
 ldapNameDeveloppeurNom du groupe Active Directory à importer. Pour récupérer tous les utilisateurs de tous les groupes, utiliser *
 aqNumber SuperNuméro du groupe AQManagerFullWeb dans lequel seront créés les utilisateurs importés. Dans l'exemple, ce sera le groupe "Superviseur"
 languageID1ID de la langue associée aux utilisateurs importés. Dans l'exemple, ce sera "Français"
 calendarID1Calendrier associé aux utilisateurs importés. Dans l'exemple, ce sera "Journée"
 workRequestMotiveID 1Motif de demande d'intervention par défaut. Dans l'exemple, ce sera "Correctif"
 workOrderMotiveID 1Motif d'ordre de travail par défaut. Dans l'exemple, ce sera "Correctif"
 sites ,1,2,ID séparés par des virgules des sites à associer aux utilisateurs créés
Remarque : cette partie de la configuration est optionnelle (par défaut les utilisateurs sont associés à tous les sites)
 isStaff 1 ou 0 Défini si l'utilisateur doit être marqué comme faisant partie de la maintenance ou non (1 pour oui, 0 pour non)
Remarque : cette partie de la configuration est optionnelle (par défaut ce sera oui)
 isLims  1 ou 0 Défini si l'utilisateur doit être marqué comme faisant partie du labo ou non (1 pour oui, 0 pour non)
Remarque : cette partie de la configuration est optionnelle (par défaut ce sera oui)

Logique du moteur d'importation

Pour chaque groupe déclaré dans le fichier ldapGroups.xml :
  1. Récupération des utilisateurs AD liés à ce groupe
  2. Pour chaque utilisateur récupéré
    1. Vérification de son existence dans la base de données FullWeb. 
      1. S'il existe déjà, seules les données suivantes sont mises à jour : nom complet, adresse email, numéro de téléphone, service et état de désactivation. La mise à jour ne modifie donc pas le groupe, le login ou toute autre information de la fiche utilisateur afin de permettre de paramétrer finement chaque compte dans les interfaces de la FullWeb. Remarque : A partir de la version 17.12.21981 le paramètre de configuration UpdateGroupsOnExistingUsers peut être ajouté au fichier de configuration pour mettre à jour les groupes des utilisateurs existants (pour activer la mise à jour il faut que la value soit à true, par défaut la fonctionnalité est désactivée).
      2. Si l'utilisateur n'existe pas encore, création de celui-ci en utilisant les données issues d'Active Directory (login, nom complet, numéro de téléphone, adresse email, service) et des valeurs par défaut abordées ci-dessus.
NB : la liste des champs mis à jour communiquée ci-dessus peut varier selon la version installée. Elle correspond à la dernière révision sortie à ce jour.

Paramétrages complémentaires

Le fichier "AQManagerLdapImporterNoGUI.exe.config", existant dans le même dossier que l'exécutable du module d'import, sert quant à lui à spécifier toutes les données techniques permettant tant la connexion à Active Directory qu'à la base de données AQManagerFullWeb. Voici un exemple illustrant la syntaxe :

<?xml version="1.0"?>
<configuration>
  <system.net>
    <mailSettings>
      <smtp from="error@aqmanager.com">
        <network host="smtp.free.fr" port="25" />
      </smtp>
    </mailSettings>
  </system.net>
  <connectionStrings>
    <add name="FullWebDb" connectionString="Data Source=.;Initial Catalog=GMAOFullweb;User Id=sa;Password=bcs;"/>
  </connectionStrings>
  <appSettings>
    <add key="LDAPPath" value="LDAP://DC=bcs,DC=local"/>
    <add key="LDAPUser" value="BCS\UserName"/>
    <add key="LDAPPassword" value="motdepasse"/>
    <add key="ErrorMailTo" value="support@aqmanager.com"/>
    <add key="UpdateGroupsOnExistingUsers" value="true|false" />  
    <add key="LDAPUpdateUsersWithoutSID" value="true|false"/>
    <add key="AuthenticationType" value="Anonymous|Delegation|Encryption|FastBind|None|ReadonlyServer|Sealing|Secure|SecureSocketsLayer|ServerBind|Signing" />
  </appSettings>
    <system.diagnostics>
        <sources>
            <!-- This section defines the logging configuration for My.Application.Log -->
            <source name="DefaultSource" switchName="DefaultSwitch">
                <listeners>
                    <add name="FileLog"/>
                    <!-- Uncomment the below section to write to the Application Event Log -->
                    <!--<add name="EventLog"/>-->
                </listeners>
            </source>
        </sources>
        <switches>
            <add name="DefaultSwitch" value="Information"/>
        </switches>
        <sharedListeners>
            <add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/>
            <!-- Uncomment the below section and replace APPLICATION_NAME with the name of your application to write to the Application Event Log -->
            <!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
        </sharedListeners>
    </system.diagnostics>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
</configuration>

  • La zone smtp permet de configurer une adresse email et un serveur d'envoi de mails permettant d'émettre des notifications en cas d'erreur de fonctionnement du module d'import. 
  • La zone connectionStrings renseigne quant à elle les informations nécessaires à se connecter au moteur de base de données AQManagerFullWeb. Un copier/coller de la chaîne issue du fichier connectionStrings.config de votre installation FullWeb devrait suffire.
  • La zone appSettings permet de spécifier le chemin LDAP de votre Active Directory, ainsi que le nom d'utilisateur/mot de passe ayant des privilèges suffisants pour accéder aux données de cet AD (dans l'exemple ci-dessus, le domaine est bcs.local).  La clef "ErrorMailTo" permet de renseigner un destinataire mail qui recevra des notifications de dysfonctionnements de l'interface d'import. 
  • La clé LDAPUpdateUsersWithoutSID permet de définir si les utilisateurs doivent être mis à jour dans le cas ou ils n'auraient pas été créés par l'utilitaire mais que le login est existant dans la base (par défaut les utilisateurs n'ayant pas été créés par l'utilitaire ne sont pas mis à jour par celui-ci, à partir de la version 18.3.21984)
  • La clé AuthenticationType permet de définir le type d'authentification utilisé (https://learn.microsoft.com/en-us/dotnet/api/system.directoryservices.authenticationtypes?view=dotnet-plat-ext-7.0). Facultative pour un LDAP, cette clé sera "SecureSocketsLayer" dans le cas d'un LDAPS.

Protection des données de configuration sensibles

Les zones connectionStrings et appSettings contenant des mots de passe, il est possible de crypter le contenu du fichier afin de protéger ces informations.
Pour déclencher ce cryptage, il vous suffit d'ajouter l'argument suivant lors de l'exécution de l'utilitaire

AQManagerLdapImporterNoGUI.exe -protect

NB : 
  1. pour décrypter ce fichier afin de pouvoir le modifier, vous devez simplement relancer l'utilitaire en enlevant l'argument (Exécuter l'invite de commandes en tant qu'Administrateur)
  2. le cryptage exploitant une clef spécifique au serveur, la lecture/décryptage n'est possible que sur le serveur ayant protégé le fichier (attention en cas de déplacement d'hébergement de l'application)
  3. cet argument est reconnu à partir de la version 17.5.21976 d'AQManagerFullWeb