ADSIReader - Importation à partir d'Active Directory

AFFICHER TOUT LE CONTENU

Table des matières

Introduction

Le programme ADSIReader (ESI.Octopus.ADSIReaderApp.exe) permet d'importer les utilisateurs, les ordinateurs (postes de travail et serveurs) et les queues d'impression contenues dans votre Active Directory.

L'importation des utilisateurs peut inclure, entre autres, le prénom, le nom, le nom d'utilisateur Windows, le titre, le département, le numéro de téléphone du bureau (avec le poste téléphonique), etc. alors que l'importation des ordinateurs n'inclut que leurs noms. 

Il est possible par la suite d'utiliser le programme WMIUpdater (ESI.Octopus.WMIUpdaterApp.exe) pour obtenir la configuration technique de l'ordinateur (système d'exploitation, mémoire, type de processeur, logiciels installés, etc.).

Quant aux queues d'impressions, nous suggérons de les exclure avec le paramètre /NoPrintersDetection lors de l'exécution du programme, pour deux raisons :

  • Le nom importé n'est pas toujours significatif
  • Il peut exister plus d'une queue d'impression pour la même imprimante

On recommande plutôt de faire une importation unique avec le programme DataImporter et ensuite de gérer les imprimantes directement dans Octopus. 

Description du fonctionnement

Lorsque le programme ADSIReader est exécuté, selon les paramètres utilisés, il importera à partir de votre Active Directory, tous les utilisateurs, Ordinateurs et queues d'impression. Les paramètres à utiliser sont importants puisqu'ils permettent de contrôler les données à importer. De plus, un fichier de correspondance (mapping) entre les champs d'Octopus et ceux de AD est disponible à partir du répertoire de votre client Octopus. 

Prérequis

Utilisation du programme ADSIReader

ADSIReader est un programme de type ligne de commande (DOS). Il est conçu ainsi pour être facile à automatiser (la section Automatisation de l'importation de données provenant de Active Directory vers Octopus décrit comment automatiser l'exécution de ADSIReader).

  • Le nom complet du programme ADSIReader est : ESI.Octopus.ADSIReaderApp.exe
  • Il est situé dans le répertoire local d'Octopus (C:\Program Files\Octopus) ou dans (\%homepath%\AppData\Local\Octopus).
  • Exemple du répertoire où peut se situer Octopus :
    • Pour Windows 7 et plus : C:\Users\slevesque\AppData\Local\Octopus
    • Pour Windows XP : C:\Documents and Settings\Slevesque\Local Settings\Application Data\Octopus

Importation ADSIReader à partir d'une ligne de commande

L'importation d'AD à partir d'une ligne de commande permet d'utiliser différents paramètres qui peuvent éviter de polluer le contenu d'Octopus avec des données non désirées. 

Pour lancer l'exécutable ADSIReader, il faut ouvrir une fenêtre d'invite de commandes (DOS) et se positionner dans le répertoire d'Octopus. Par la suite, il faut entrer la ligne de commande suivante :

ESI.Octopus.ADSIReaderApp.exe /login:system /password:octo /domain:MonDomaine /team:1
Important : Le répertoire courant doit être le répertoire où est situé le programme ESI.Octopus.ADSIReaderApp.exe.

Exemple de la ligne de commande dans DOS

Avant de lancer la commande, il est recommandé de valider les paramètres voulus.

ATTENTION, s'il y a une faute de frappe dans le nom d'un paramètre, le système ne donnera pas de message d'erreur et va ignorer le paramètre. On doit bien valider les paramètres avant d'exécuter la commande.

Exemples

  • Importation des utilisateurs actifs seulement et des ordinateurs, mais sans les queues d'impressions :
ESI.Octopus.ADSIReaderApp.exe /login:system /password:octo /Domain:Octopus-itsm /team:1 /NoPrintersDetection /ActiveUsersOnly
  • Importation AD sans mettre à jour la base de données et modification du fichier de journalisation :
ESI.Octopus.ADSIReaderApp.exe /login:system /password:octo /Domain:Octopus-itsm /team:1 /NoDbUpdate /LogFilePath:MonFichier.log

Ce qu'il faut savoir :

À chaque exécution du programme un fichier .LOG est créé avec le format NomDeL'Outil_AAAAMMJJ_HHMMSS.log,

  • Par exemple ADSIReader_20190618_105242.log.

Utiliser ce fichier pour voir les résultats d'exécution de la commande et les erreurs s'il y en a.

Voir aussi l'article Outils Octopus | Entretien des fichiers logs sur l'importance de faire la gestion de ses fichiers. 

Il est possible de générer un mot de passe chiffré et masquer le mot de passe lors de l'exécution, voir cet article pour plus de détails.

Paramètres

Il y a 21 paramètres disponibles dont 4 obligatoires pour exécuter ADSIReader :

Paramètres obligatoires

  • /Login
    • Nom d’utilisateur Octopus
  • /Password
    • Mot de passe Octopus
  • /Team
    • ​Le numéro de l'équipe à mettre à jour, si l'utilisateur spécifié fait partie de plusieurs équipes. Par défaut, l'équipe TI utilise normalement le numéro d'équipe 1
  • /Domain:DomainName
    • Ce paramètre correspond au nom du domaine à importer
ATTENTION : Le comportement de l'application est dépend de la spécification d'un domaine entier ou simplement d'un OU :
  • Pour un domaine entier :
    • L'import va gérer le retrait des CIs (un ordinateur ne faisant plus partie du domaine sera mis en état Retiré. On peut contrôler ce comportement par le paramètre /NoStatusUpdate
    • L'import pourrait gérer le retrait des utilisateurs. On peut activer ce comportement par le paramètre /DeactivateUsers
  • Pour un OU spécifique :
    • l'import ne gérera pas le retrait des CIs
    • l'import ne gérera pas la désactivation des utilisateurs

Paramètres facultatifs

  • /DomainUserName
    • Permet de spécifier le nom de l'utilisateur Windows à utiliser pour se connecter à l'AD
    • Par défaut, ADSIReader va utiliser le contexte dans lequel la commande a été exécutée
  • /DomainPassword
    • Permet de spécifier le mot de passe du compte Windows utilisé avec le paramètre /DomainUserName
  • /NoUsersDetection
    • Désactive l'import des utilisateurs
  • /NoComputersDetection
    • Désactive l'import des ordinateurs
  • ​/NoGroupsDetection
    • Désactive l'import des groupes
  • /NoPrintersDetection
    • Désactive l'import des imprimantes
  • /Exclude:NomFichier.txt
    • Permet de spécifier un fichier contenant une liste de OU ou de CN à exclure de l'import
    • Le fichier devra contenir chaque OU ou CN à ignorer, un par ligne, présenté selon le format des noms distingués (DN)
    • Si le nom du OU ou CN contiens des espaces, il n'est pas nécessaire de l'inscrire entre guillemets.
    • Le contenu des OU ou CN spécifiés ainsi que tous leurs objets enfants seront exclus
  • /ValuesExclusionsFilePath:NomFichier.txt
    • Permet de spécifier un fichier contenant une liste d'enregistrements à exclure de la synchronisation, à partir de critères basés sur les noms des variables de l’AD.
    • Il est possible d'exclure des éléments parmi les ordinateurs (computer), les utilisateurs (user), les imprimantes (printer) ou les groupes (group).
    • La compréhension de cette option est importante avant de l'utiliser, voir la section Exclusion d'enregistrements spécifique de l'AD.
  • /ActiveUsersOnly
    • Ajouter ce paramètre pour importer seulement les utilisateurs actifs dans Active Directory
  • /DeactivateUsers
    • Désactive les utilisateurs Octopus en fonction du statut du compte Active Directory
    • Un compte absent, désactivé ou supprimé de l'AD va désactiver le compte Octopus
    • Si on utilise un OU où les comptes en jachère sont placés, il faut utiliser le paramètre /Exclude pour automatiquement désactiver son contenu
       
  • /SiteAutoCreation:False
    • Pour désactiver la création automatique de Sites
       
  • /DepartmentAutoCreation:False
    • Pour désactiver la création automatique de Départements
NOTE : si le champ "Département" de l'AD n'existe pas dans Octopus, l'utilisateur ne sera pas créé ou mise à jour.

 

ATTENTION
Par défaut, lors de la désactivation d'un utilisateur, Octopus retire les liens entre l'utilisateur et ses CIs. Il est possible de modifier ce comportement et faire en sorte que l'état d'un utilisateur n'affecte pas les liens avec ses CI.

Au besoin, communiquer avec le Centre de services Octopus  pour faire modifier cette option en spécifiant le nom :  (User.Deactivation.DeleteCIRelationships.Enabled) et le nom et numéro de l'équipe. 
  • /ReactivateUsers
    • Réactive les utilisateurs Octopus en fonction du statut du compte Active Directory
    • Le compte sera reconnu comme il est spécifié dans la section Description de la mécanique de synchronisation.
    • Si on utilise un OU exclus avec le paramètre /Exclude, les comptes contenus ne seront pas réactivés
    • Il n'est pas requis d'utiliser la fonction /DeactivateUsers pour que celle-ci fonctionne
  • /IncludeDomainNameInWindowsUserName
    • Importe les noms d'utilisateurs au format domaine\nom d'utilisateur
    • Alternativement, modifier le fichier de correspondance pour utiliser l'attribut User Principal Name de Active Directory, au format username@domaine.name
  • /AllowMultipleLogon
    • Ajouter ce paramètre lorsque certains utilisateurs ont plus d'un compte dans le champ Nom d'utilisateur Windows
    • ​Si le Nom d'utilisateur Windows contient déjà celui de l'AD, toutes les valeurs du champ seront conservées
    • ​Si le Nom d'utilisateur Windows ne contient pas celui de l'AD, la valeur de l'AD sera la seule conservée

  •  /MatchADKeyOnNullExternalIDOnly
    • Cette option est désactivée par défaut. (Sans l'option, ou avec la valeur False)
    • ​Cette option change la façon dont Octopus identifie un utilisateur à partir de sa clé ActiveDirectory

    • Dans certains cas extrêmement rares, notamment lors de la présence d’homonyme, il se peut que la méthode d’authentification ActiveDirectoryKey (DistinguishedName) prenne un utilisateur pour une autre.

    • Par défaut si le champ ActiveDirectoryKey correspond à un ActiveDirectoryKey d’un utilisateur déjà présent dans Octopus alors l’utilisateur est mis à jour.
    • Avec l’option activée (True) si le champ ActiveDirectoryKey correspond à un ActiveDirectoryKey d’un utilisateur déjà présent dans Octopus, il faut aussi que la valeur du champ ExternalID soit vide/nul pour que l’utilisateur soit mis à jour. Dans le cas où ExternalID n’est pas nul, un nouvel utilisateur est créé.
  • /ImportManager
    • Ajouter ce paramètre pour importer le supérieur immédiat
    • L'attribut Manager d'Active Directory sera importé dans Octopus, dans le champ Supérieur immédiat
    • Lors du premier import, le supérieur immédiat ne sera pas importé dans ce champ, car il doit préalablement être importé comme utilisateur
  • /NoStatusUpdate
    • Ajouter ce paramètre pour éviter que le système change l'état des CI retirés
  • /LogFilePath:NomFichier.log
    • Remplace l'emplacement du fichier de journalisation
    • Par défaut, le fichier se nomme ADSIReader_AAAAMMJJ_HHMMSS.log et sera situé dans le répertoire où se trouve l'exécutable de l'application ADSIReader
    • Si on déplace le fichier dans un autre répertoire que celui d'Octopus, il faut que ce répertoire existe (le système ne peut créer le répertoire)
    • Ex.:/LogFilePath:C:\LogFiles\JournalADSI.log.
  • /MappingsFilePath:NomFicher.xml
    • Remplace l'emplacement du fichier de correspondance des champs
    • Par défaut, le fichier se nomme ADSIReaderLDAPMappings.xml et se trouve dans le répertoire où se trouve l'exécutable de l'application ADSIReader
Ce qu'il faut savoir :

Si des modifications sont faites dans le fichier ADSIReaderLDAPMappings.xml, on recommande de déplacer le fichier vers un autre endroit pour éviter que ces modifications soient écrasées si l'application est réinstallée. 

Garder une copie de sauvegarde de ce fichier est aussi recommandé. 
  • /NoDbUpdate
    • Le programme sera exécuté, mais sans mettre à jour la base de données d'Octopus
    • Les informations récoltées se retrouveront dans les fichiers suivants : ADSIUsers.xml, ADSIComputers.xml, ADSIGroups.xml et ADSIPrinters.xml
    • On peut par la suite importer ce fichier en utilisant le paramètre /NoExtraction
  • /NoExtraction
    • Les données ne seront pas extraites du domaine, mais importées à partir des fichiers XML
    • Utiliser les paramètres  /NoUsersDetection, /NoComputersDetection, /NoGroupsDetection et /NoPrintersDetection pour contrôler quels fichiers seront importés
  • /PurgeLogs
    • Permet d'effacer automatiquement les vieux fichiers de logs. 
    • Le paramètre permet de déterminer le nombre de jours de fichiers logs qu'on désire conserver.
    • Pour plus d'information, voir l'article Outils Octopus | Entretien des fichiers logs.

Automatisation de l'importation de données provenant de Active Directory vers Octopus

Pour automatiser l'importation à partir de ADSIReader, voir l'article Tâches planifiées Windows.

Mise en place

Attribution automatique d'un site aux utilisateurs/ordinateurs contenus dans une unité organisationnelle (OU)

Pour attribuer automatiquement un site aux utilisateurs et aux ordinateurs contenus dans un OU rvoir l'article ADSIReader - Attribution automatique d'un site
 

Intégration avec une seule unité organisationnelle (OU)

Pour importer uniquement une seule unité organisationnelle, voir l'article ADSIReader - Intégration avec une seule unité organisationnelle (OU)

Option de retrait des liens entre CI et utilisateur à la désactivation de l'utilisateur

Par défaut, lors de la désactivation d'un utilisateur, Octopus retire les liens entre l'utilisateur et ses CIs. Dans certains environnements, où un utilisateur en congé ou en maladie à long terme sera désactivé, ceci peut représenter un problème.

Il est possible de faire une demande pour modifier ce comportement et faire en sorte que l'état d'un utilisateur n'affecte pas les liens avec ses CI.

Communiquer avec le Centre de services Octopus pour faire modifier cette option au besoin. 

Désactiver les utilisateurs générique ou système

Lors de l'importation AD, tous les utilisateurs ayant un prénom et un nom seront importés dans Octopus. Cependant, certains parmi eux ne représentent pas un utilisateur (compte générique, ressources, compte système, etc.).

Pour les retirer de la liste des utilisateurs actifs, ils doivent être désactivés de la façon suivante :

  • Aller dans le module Utilisateurs
  • Cliquer sur la liste de tous les utilisateurs
  • Sélectionner un utilisateur à désactiver ou faites une recherche pour trouver les utilisateurs à désactiver
  • Ouvrer la fiche de l'utilisateur
  • Dans le coin droit supérieur, décocher la case Actif
  • Sauvegarder les changements

Pour consulter les utilisateurs inactifs, sélectionner la liste Utilisateurs inactifs à partir de la section Autres des listes. 


 

ATTENTION : Il est important de ne pas effacer ces "faux" utilisateurs, sinon ils seront importés à nouveau lors de la prochaine synchronisation.

Identification des postes de travail qui ont le mauvais type (serveurs, portatifs, tablettes)

Lorsque les ordinateurs sont importés dans Octopus, ils ont tous le type de CI Station de travail (par défaut), il n'est pas possible de changer ce parametres par défaut.

Pour d'attribuer le bon type de CI aux CI correspondants :

  • Aller dans le module Configurations
  • Cliquer sur Station de travail
  • Sélectionner les ordinateurs qui sont des serveurs. Il est possible de modifier le type de plusieurs CI à la fois
  • Cliquer sur Changer le CI dans la liste des actions de gauche
  • Sélectionner Serveur dans la liste Type
  • Cliquer OK

Répéter les mêmes étapes pour les portatifs et les tablettes.

Supporter pour les équipes autres que TI pouvant gérer des CI

L'application ADSIReader est supportée dans les autres équipes que TI (équipe #1).

Toutefois, un administrateur Octopus doit exécuter des commandes pour configurer les données nécessaires à leur exécution.

Pour ce faire il faut :

  • Sélectionner le menu Outils -> Gestion des données de référence... -> Général -> Équipes
  • Sélectionner l'équipe 
  • Appuyer sur le bouton Exécuter de la section Types de CI

Ce qu'il faut savoir : 
L'application ADSIReaderApp fonctionne déjà pour toutes les équipes sans configuration particulière si et seulement si les paramètres suivants sont spécifiés lors de son exécution :
  • NoPrintersDetection
  • NoComputerDetection

Spécifications de l'importation

Description de la mécanique de synchronisation

Lorsqu'Octopus réalise l'import des utilisateurs, celui-ci va tenter de synchroniser les utilisateurs d'Active Directory aux comptes d'utilisateurs selon la logique suivante :

  1. Identifiant Externe
    • Octopus tente d'abord le rapprochement en référant à l'identifiant unique du compte (ObjectGUID)
    • Si l'identifiant externe est reconnu, le compte Octopus va se faire mettre à jour : nom, prénom, nom d'utilisateur, courriel, etc.
    • L'identifiant unique AD d'un utilisateur Octopus est enregistré dans la colonne Identifiant Externe
  2. ActiveDirectoryKey

    • ​​Si aucun identifiant externe correspondant n’a été trouvé, Octopus va se référer à ActiveDirectoryKey. (DistinguishedName)

    • ActiveDirectoryKey ou Distinguished Name est un moyen d'identifier de façon unique un objet dans la l’active directory. Donc notre cas il contient le nom relatif des différents éléments et entrées parents constituant ainsi un chemin d’accès vers l’objet 'utilisateur' dans l’Active directory.

    • Si un rapprochement est effectué, le compte Octopus va se faire mettre à jour.

    • ActiveDirectoryKey est normalement unique. Dans de rares cas, notamment en présence d’homonyme, cette méthode nécessite d’être ajusté, cela est possible en se référant à l’option ‘MatchADKeyOnNullExternalIDOnly’

  3. Nom d'utilisateur
    • Méthode utilisée si le rapprochement par identifiant externe n'a pas fonctionné
    • Octopus va tenter de trouver une correspondance au niveau du nom d'utilisateur pour tous les comptes Octopus n'ayant pas d'identifiant externe
    • Si un rapprochement est effectué, l'identifiant externe du compte Octopus sera renseigné
  4. Nom & Prénom
    • Méthode utilisée si les deux rapprochements précédents n'ont pas fonctionné
    • Octopus va tenter de trouver une correspondance entre les prénoms et noms des deux comptes, en ignorant ceux contenant déjà un identifiant externe
    • Si un rapprochement est effectué, l'identifiant externe du compte Octopus sera renseigné
    • La mécanique de rapprochement tient compte des accents, mais  ne fait pas de différence entre les majuscules et les minuscules
  5. Création d'un nouveau compte
    • Aucun rapprochement n'a pu être effectué
    • Octopus va procéder à la création d'un nouvel utilisateur Octopus

Si on désire synchroniser un compte utilisateur ou un objet à nouveau, mais qu'Octopus présente déjà un Identifiant Externe, utiliser l'action Option > Vider l'identifiant Active Directory qui va retirer à la fois la clé Active Directory (DN de l'objet AD) et son identifiant externe (ObjectGUID)

Voir en image

Définition des informations à importer

La correspondance des champs AD-Octopus est contenue dans le fichier XML ADSIReaderLDAPMappings.xml situé dans le répertoire du client Octopus.

Voici le contenu du fichier par défaut :

<?xml version="1.0" encoding="utf-8" ?>
<mappings>
  <mapping Name="User">
    <attribute LDAPAttribute="objectGUID" OctopusAttribute="ExternalID"/>
    <attribute LDAPAttribute="sAMAccountName" OctopusAttribute="Name" />
    <attribute LDAPAttribute="GivenName" OctopusAttribute="FirstName"/>
    <attribute LDAPAttribute="sn" OctopusAttribute="LastName"/>
    <attribute LDAPAttribute="Mail" OctopusAttribute="EMailAddress"/>
    <attribute LDAPAttribute="Title" OctopusAttribute="Title" EmptyValueHandling="NoChange"/>
    <attribute LDAPAttribute="TelephoneNumber" OctopusAttribute="TelephoneNumber" Index="0" Separator="x" EmptyValueHandling="NoChange"/>
    <attribute LDAPAttribute="TelephoneNumber" OctopusAttribute="TelephoneNumberExtension" Index="1" Separator="x" EmptyValueHandling="NoChange"/>
    <attribute LDAPAttribute="Mobile" OctopusAttribute="TelephoneMobile" EmptyValueHandling="NoChange"/>
    <attribute LDAPAttribute="homePhone" OctopusAttribute="HomePhone" EmptyValueHandling="NoChange"/>
    <attribute LDAPAttribute="distinguishedName" OctopusAttribute="ActiveDirectoryKey"/>
    <attribute LDAPAttribute="Department" OctopusAttribute="Department" EmptyValueHandling="NoChange"/>
    <attribute LDAPAttribute="EmployeeNumber" OctopusAttribute="EmployeeNumber" EmptyValueHandling="NoChange"/>
    <attribute LDAPAttribute="Pager" OctopusAttribute="Pager" EmptyValueHandling="NoChange"/>
    <attribute LDAPAttribute="physicalDeliveryOfficeName" OctopusAttribute="Local" EmptyValueHandling="NoChange"/>
    <attribute LDAPAttribute="preferredLanguage" OctopusAttribute="Language" />
  </mapping>
  <mapping Name="Computer">
    <attribute LDAPAttribute="objectGUID" OctopusAttribute="ExternalID"/>
    <attribute LDAPAttribute="distinguishedName" OctopusAttribute="ActiveDirectoryKey"/>
    <attribute LDAPAttribute="Name" OctopusAttribute="Name"/>
  </mapping>
  <mapping Name="Printer">
    <attribute LDAPAttribute="objectGUID" OctopusAttribute="ExternalID"/>
    <attribute LDAPAttribute="distinguishedName" OctopusAttribute="ActiveDirectoryKey"/>
    <attribute LDAPAttribute="Name" OctopusAttribute="Name"/>
  </mapping>
  <mapping Name="Group">
    <attribute LDAPAttribute="objectGUID" OctopusAttribute="ExternalID"/>
    <attribute LDAPAttribute="distinguishedName" OctopusAttribute="ActiveDirectoryKey"/>
    <attribute LDAPAttribute="Name" OctopusAttribute="Name"/>
  </mapping>
</mappings>

Il n'est pas requis de modifier ce fichier pour que le programme de synchronisation fonctionne. Les champs utilisés par défaut sont déjà liés.

Ce qu'il faut savoir

Par défaut le fichier de correspondance contient le paramètre EmptyValueHandling avec le choix NoChange.

Ce choix indique que si la valeur dans AD pour l'élément est effacée, la dernière valeur qui avait été mise à jour dans Octopus va rester telle quelle.

Si on préfère que la valeur d'Octopus soit vidée, voir la section Effacer les données dans Octopus lorsqu'un champ est vidé dans AD plus bas. 

Modification du fichier de correspondance des champs

  • Si un champ contient des données dans Active Directory et qu'il y a une correspondance avec ce champ dans Octopus, les données d'AD auront priorité sur les données d'Octopus. Cependant, si le champ dans AD est vide, mais que celui dans Octopus contient des données, elles ne seront pas effacées.
  • Si on décide d'importer les sites, les départements ou les sous-départements, ils seront ajoutés dans Octopus, s'ils n'existent pas déjà.
  • Les possibilités de configuration d'Active Directory étant infinies (niveau fonctionnel, utilisation des champs, champs ajoutés dans le schéma), Octopus ne peut s’engager à offrir une liste des champs disponibles. Valider à l'interne, auprès d'un des administrateurs du domaine qui saura fournir une liste des attributs LDAP disponibles.
Ce qu'il faut savoir :

Si des modifications sont faites dans le fichier ADSIReaderLDAPMappings.xml, on recommande de déplacer le fichier vers un autre endroit pour éviter que ces modifications soient écrasées si l'application est réinstallée.

Il faudra alors utiliser le paramètre /MappingsFilePath pour indiquer à Octopus l'endroit où se trouve le fichier de correspondance. 

On recommande aussi de garder une copie de sauvegarde de ce fichier.  

Voici quelques cas qui peuvent nécessiter de modifier le fichier de correspondance :

Azure AD - Synchronisation du userPrincipalName (UPN)

L'utilisation du fédérateur d'authentification Azure AD pour les applications destinées aux intervenants nécessite la synchronisation du userPrincipalName (UPN) provenant d'Active Directory. Celui-ci sera ajouté à la valeur existante du champ Nom d'utilisateur Windows.

Si les utilisateurs finaux ainsi que les intervenants s'authentifient déjà à l'aide de leur UPN dans les différentes applications Octopus, vous n'avez aucun changement à apporter à votre configuration.

Toutefois, compte tenu qu'il est possible d'avoir un mode d'authentification distinct pour le portail Web et pour les applications destinées aux intervenants, il est probable que vous aillez à synchroniser le sAMAccountName et le userPrincipalName.

Pour synchroniser le userPrincipalName, ajouter la ligne suivante :

<attribute LDAPAttribute="userPrincipalName" OctopusAttribute="UPN"/>

Automatiser le champ site

Par défaut, aucun champ d'Active Directory n'est lié au champ Site dans Octopus. Si cette information est disponible dans un champ d'AD, on peut l'ajouter la ligne suivante :

<attribute LDAPAttribute="Company" OctopusAttribute="Site"/>

Pour séparer chaque site, utiliser la barre verticale "|" entre chaque niveau, par exemple: Site|Sous-Site|Sous-Site. Combiner cette fonctionnalité avec l'Attribution automatique d'un site aux utilisateurs/ordinateurs contenus dans une unité organisationnelle (OU) et le site spécifié au niveau de l'utilisateur AD aura préséance sur la reconnaissance par OU.

Certains champs dans AD contiennent des valeurs invalides

Supprimer les champs à ne pas pas synchroniser.
Par exemple, pour ne pas importer le titre de l'utilisateur, supprimer la ligne suivante :

<attribute LDAPAttribute="Title" OctopusAttribute="Title"/>

La lettre "p" est utilisée pour indiquer le poste téléphonique

Remplacer le "x", comme séparateur, par un "p" dans les 2 lignes suivantes :

<attribute LDAPAttribute="TelephoneNumber" OctopusAttribute="TelephoneNumber" Index="0" Separator="x"/> <attribute LDAPAttribute="TelephoneNumber" OctopusAttribute="TelephoneNumberExtension" Index="1" Separator="x"/>

Le numéro de téléphone contient seulement le poste téléphonique

Remplacer les 2 lignes suivantes :

<attribute LDAPAttribute="TelephoneNumber" OctopusAttribute="TelephoneNumber" Index="0" Separator="x"/> 
<attribute LDAPAttribute="TelephoneNumber" OctopusAttribute="TelephoneNumberExtension" Index="1" Separator="x"/>

par :

<attribute LDAPAttribute="TelephoneNumber" OctopusAttribute="TelephoneNumberExtension"/>

Le numéro de téléphone contient un préfixe que l'on désire retirer

Par exemple si on veut retirer le préfixe "1-" du numéro de téléphone 1-514-123-1234 obtenu à partir d'Active Directory,il faut utiliser le paramètre StripLeading dans le fichier de correspondance ADSIReaderLDAPMappings.xml :

<attribute LDAPAttribute="TelephoneNumber" OctopusAttribute="TelephoneNumber" Index="0" Separator="x" StripLeading="1-"/>

Le numéro de téléphone contient une portion que l'on veut retirer

Par exemple, si on veut retirer un libellé qui est présent dans la case Numéro de téléphone ou Poste comme suit +18002341111; ext=3040 et obtenir le résultat suivant : 18002341111 pour le numéro de téléphone et 3040 pour le poste, il faut remplacer par :

<attribute LDAPAttribute="TelephoneNumber" OctopusAttribute="TelephoneNumber" Index="0" Separator=";" EmptyValueHandling="NoChange"/>

<attribute LDAPAttribute="TelephoneNumber" OctopusAttribute="TelephoneNumberExtension" Index="1" Separator="=" EmptyValueHandling="NoChange"/>

Importation du département ET du sous-département

On peut ajouter des départements et sous-départements pour représenter votre structure organisationnelle. Dans le fichier ADSIReaderLDAPMappings.xml initial, la correspondance du champ département est déjà dans la liste, mais pas celle du sous-département. Pour ajouter une correspondance entre AD-Octopus pour les sous-départements, il faut ajouter la ligne suivante :

<attribute LDAPAttribute="NomDuChampAD" OctopusAttribute="SubDepartment"/>

Il faut remplacer l'expression NomDuChampAD par le nom du champ utilisé dans AD pour définir un sous-département. 

Pour faire l'entrée des départements et sous-départements dans le champ département de AD (sous la forme suivante : Département - Sous-département), il faut modifier les 2 lignes suivantes :

<attribute LDAPAttribute="Department" OctopusAttribute="Department" Index="0" Separator="-"/> 
<attribute LDAPAttribute="Department" OctopusAttribute="SubDepartment" Index="1" Separator="-"/>

 

ATTENTION: Même s'il y a des espaces dans le champ AD, il ne faut pas en mettre dans les guillemets du paramètre Separator.

Importation de champs personnalisés Octopus

Pour pouvoir importer des données vers un champ personnalisé Octopus, vous aurez à modifier votre fichier de correspondance pour y spécifier le nom du champ de destination à utiliser.

Cependant, une codification spéciale est nécessaire. Pour obtenir le nom du champ codifié, suivez les opérations suivantes, prenant en exemple le champs Corps de métier ou d'emploi:

  1. Remplacer tous les caractères accentués par leur version non accentués.
    • Corps de métier ou d'emploi devient Corps de metier ou d'emploi.
  2. Mettre la première lettre de tous les mots en majuscule.
    • Corps de metier ou d'emploi devient Corps De Metier Ou D'Emploi.
  3. Retirer toutes formes de ponctuations.
    • Corps De Metier Ou D'Emploi devient Corps De Metier Ou DEmploi.
  4. Retirer tous les espaces.
    • Corps De Metier Ou DEmploi devient CorpsDeMetierOuDEmploi.
  5. Ajouter comme préfixe la chaine CustomAttribute.cf.
    • CorpsDeMetierOuDEmploi devient CustomAttribute.cfCorpsDeMetierOuDEmploi.
Vous pourrez ensuite modifier le fichier de correspondance de la manière suivante:
<attribute LDAPAttribute="ExtensionAttribute4" OctopusAttribute="CustomAttribute.cfCorpsDeMetierOuDEmploi"/>


Voici tous les champs utilisateurs qui sont supportés par ADSI ( Voir dans le fichier ADSIReaderLDAPMappings.xml)

  • UPN
  • FirstName
  • LastName
  • EMailAddress
  • Title
  • TelephoneNumber
  • TelephoneMobile
  • HomePhone
  • ActiveDirectoryKey
  • ExternalID
  • TelephoneNumberExtension
  • Department
  • SubDepartment
  • EmployeeNumber
  • Pager
  • Site
  • Local
  • IsActive
  • LastLogon
  • LastLogonTimestamp
  • Language
  • Manager
  • CostCenter
     

Importation du champ Description pour un CI

À partir du champ Description de l’AD on peut importer : 

  • Un local
  • Le numéro d'inventaire
  • L'attribut Description d’un CI
<attribute LDAPAttribute="description" OctopusAttribute="Local"/>
<attribute LDAPAttribute="description" OctopusAttribute="InventoryNumber"/>
<attribute LDAPAttribute="description" OctopusAttribute="CustomAttribute.Description"/>

 

Ce qu'il faut savoir

L'attribut Description ou tout autre nom doit exister pour le type de CI importé, et il faut y référer en indiquant CustomAttribute.NomAttribut.

Effacer les données dans Octopus lorsqu'un champ est vidé dans AD

Par défaut, la synchronisation avec Active Directory permet d'ajouter ou modifier des valeurs dans Octopus. Sauf lorsque la valeur du champ est effacée dans l'AD. Dans ce cas, la dernière valeur ajoutée à Octopus restera là. 

Il est possible de modifier le fichier de correspondance ADSIReaderLDAPMappings.xml pour changer ce comportement pour certains champs.

Ajouter l'option EmptyValueHandling="Clear" à la fin de l'attribut qui est à effacer lorsqu'il est vide dans l'AD. 

Par l'exemple :

<attribute LDAPAttribute="EmployeeNumber" OctopusAttribute="EmployeeNumber" EmptyValueHandling="Clear"/>

Les champs qui peuvent utiliser cette option sont : 

Pour une fiche utilisateur

  • Titre 
  • Tél. bureau
  • Poste 
  • Tél. domicile
  • Tél. cellulaire
  • Téléavertisseur 
  • Département 
  • Sous-département
  • Numéro d'employé
  • Local 
  • Supérieur immédiat

Pour une CI

  • Local 
  • Numéro d'inventaire

  • Centre de coûts

  • Valeur d'un attribut personnalisé

 

Exclusion d'enregistrements spécifique de l'AD

Le paramètre /ValuesExclusionsFilePath permet d'exclure certains enregistrements de la synchronisation avec AD.

Les types d'éléments qu'on peut exclure sont : 

  • Les utilisateurs
  • Les groupes 
  • Les ordinateurs
  • Les imprimantes

 

À partir d'un fichier en format UTF-8, on ajoute la liste d'enregistrements à exclure de la synchronisation, à partir de critères basés sur les noms des variables de l’AD.

Les règles pour utiliser ce paramètre sont les suivantes : 

  • Le fichier doit être en format UTF-8.

  • Si une exclusion de OU est appliquée à l'aide du paramètre /Exclude, alors cette exclusion a préséance sur le paramètre actuel.
  • On peut ajouter plus d'un critère à la fois, en utilisant le point-virgule pour les séparer. 
  • Noter qu'un critère ne pourra pas contenir de point-virgule parce qu'il est utilisé comme séparateur.
  • Les critères contenant des guillemets seront ignorés.
  • Il est possible de gérer les valeurs vides en ajoutant deux points-virgules à la fin d'une liste. 
  • Si un critère n'est pas valide, la ligne au complet sera ignorée.
  • Si plusieurs lignes de critères sont ajoutées, elles sont traitées individuellement (dès qu'une des lignes est vraie, l'enregistrement est exclu)

 

Ce qu'il faut savoir

On recommande de procéder à des tests en utilisant le paramètre /NoDbUpdate pour valider les résultats dans les fichiers log et xml. 

La compréhension de l'utilisation du point-virgule ( ; ) est très importante pour ce paramètre : 
  • Il sert de séparateur entre les critères, on ne peut donc pas s'en servir dans les critères eux-mêmes.
    • <GivenName>John; Mary; Lucie</GivenName>
  • Un seul ou deux points-virgules à la fin d'une liste veulent dire d'exclure les éléments vides.
    Il est donc recommandé de bien regarder les listes de critères avant de procéder. 
    • <GivenName>John; Mary; Lucie;</GivenName>
    • <GivenName>John; Mary; Lucie;;</GivenName>

 

Voici un exemple de fichier : 

<ExcludedLists>
                <Computer>
                               <cn>OCTOAD-DC;OCTOAD-WS1</cn>
                </Computer>
                <User>
                               <GivenName>Mr;Ms</GivenName>
                               <sn>Loranger;Operation</sn>
                               <extensionAttribute1>Étudiant;;</extensionAttribute1>
                </User>
                <Printer>
                               <priority>1</priority>
                </Printer>
                <Group>
                               <sAMAccountName>CTS Web Access Computers</sAMAccountName>
                </Group>
</ExcludedLists>

 

Dépannage ADSIReader

Pour plus de détails sur les problèmes de synchronisation, cliquez ici

Journal des opérations

Fichiers générés à l'exécution du programme ADSIReader :

  • ADSIReader_AAAAMMJJ_HHMMSS.log 
    • Journal des opérations (LOG) généré automatiquement chaque fois que le programme est exécuté
  • ADSIUsers.xml
    • Fichier contenant l'information sur les utilisateurs qui seront importés dans Octopus, une fois la tâche terminée
  • ADSIComputers.xml 
    •  Fichier contenant l'information sur les ordinateurs qui seront importés dans Octopus, une fois la tâche terminée
  • ADSIPrinters.xml
    • Fichier contenant l'information sur les queues d'impression qui seront importées dans Octopus, une fois la tâche terminée
  • ADSIGroups.xml
    • Fichier contenant l'information sur les groupes utilisateurs qui seront importés dans Octopus, une fois la tâche terminée

Ces fichiers seront créés dans le même répertoire que l'exécutable "ESI.Octopus.ADSIReaderApp.exe". De plus, ces fichiers peuvent être demandés lors de l'analyse d'un problème avec l'utilisation du programme ADSIReader

X
Aidez-nous à améliorer l’article