Exemple d’automatisation Active Directory

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 7 minutes de lecture
  • Un ensemble de six activités Active Directory Orchestration permet aux organisations d’automatiser leurs processus d’embauche et de départ grâce à des workflows auditables et auto-documentés qui permettent de gagner du temps et d’éliminer les erreurs.

    Les activités de la Pack d’activités Active Directory sont conçues pour gérer les comptes d’utilisateurs et réinitialiser les mots de passe des utilisateurs. Les activités suivantes couvrent les cas d’utilisation les plus courants rencontrés par les administrateurs lors de la gestion des comptes utilisateur Active Directory :
    • Créer un compte utilisateur AD
    • Mettre à jour le compte utilisateur AD
    • Supprimez le compte d'utilisateur AD
    • Désactiver le compte d'utilisateur AD
    • Interroger AD
    • Réinitialisez le mot de passe utilisateur AD.

    Ces activités partagent une conception commune, ont des fonctionnalités complémentaires et partagent un ensemble commun de paramètres. Ils peuvent être utilisés seuls ou ensemble pour créer des workflows cohérents pour la mise en service et l’annulation d’approvisionnement des comptes utilisateur.

    Mettre à jour Active Directory avec Orchestration

    Une organisation envisage de faire de son ServiceNow instance le système d’enregistrement unique pour les données de compte utilisateur et souhaite mettre à jour Active Directory avec les derniers changements.

    Pourquoi et quand exécuter cette tâche

    La solution consiste à créer un workflow Orchestration qui transfère les modifications de l’enregistrement ServiceNow utilisateur vers Active Directory pour créer un nouvel enregistrement utilisateur ou mettre à jour un enregistrement existant. Pour ce faire, un workflow Orchestration capable de créer et mettre à jour des enregistrements dans Active Directory en fonction des données de la ServiceNow table Utilisateur [sys_user].

    Remarque :
    Cet exemple de workflow suppose qu’il est configuré pour LDAP et qu’un ServiceNow serveur LDAP est configuré pour accepter les nouveaux comptes d’utilisateur. Les activités de gestion des utilisateurs Active Directory ne dépendent pas de LDAP, mais la présence de LDAP facilite grandement cet exemple de workflow. Vous devez fournir l’adresse IP du contrôleur de domaine au workflow, soit en la codant en dur, soit en ajoutant une autre entrée de workflow, soit en utilisant un script pour la rechercher à partir de la CMDB.

    Procédure

    1. Accédez à la Tout > Workflow > Éditeur de workflow.
    2. Dans l’onglet Workflow , cliquez sur l’icône + pour créer un workflow à l’aide de ces variables :
      • Nom : synchroniser l’utilisateur AD
      • Table : Global [global]
    3. Cliquez sur Envoyer.
      Un flux de travail de base avec un point de début et un point de fin apparaît sur le canevas.
    4. Cliquez sur l’icône de menu dans le coin supérieur gauche du canevas et sélectionnez Modifier les entrées dans le menu contextuel.
      Figure 1. Modification des entrées de workflow
      Modification des entrées de workflow
    5. Dans le formulaire Entrées du workflow, cliquez sur Nouveau dans la liste d’enregistrement Variables , puis créez une nouvelle variable à l’aide des champs de la table.
      Champ Valeur
      Type Référence
      Étiquette Utilisateur
      Nom de colonne u_user
      Spécification de référence > référence Utilisateur (sys_user)
    6. Cliquez sur Envoyer.
    7. Dans l’onglet Personnalisé , développez Activités personnalisées > Active Directory.
    8. Glissez-déplacez l’activité Mettre à jour un objet AD sur la ligne de transition entre les points de début et de fin du nouveau workflow.
      Cette action lie automatiquement l’activité au point de terminaison et ouvre le formulaire de propriété Activité du workflow.
    9. Remplissez le formulaire à l'aide des champs de la table.
      Champ Valeur
      Nom Saisissez un nom logique tel que Mettre à jour les données utilisateur.
      Contrôleur de domaine L’intégration ServiceNow LDAP ajoute une référence au serveur LDAP auquel le compte de l’utilisateur est lié. Pour identifier le serveur LDAP, entrez l’instruction suivante :

      ${workflow.inputs.u_user.ldap_server.server_url}

      Type Type d’objet AD. Dans ce cas, le type est Utilisateur, qui est le type par défaut.
      Nom d'objet Cet exemple suppose que le ServiceNow nom d’utilisateur correspond au sAMAccountName Active Directory. Saisissez les informations suivantes :

      ${workflow.inputs.u_user.user_name}

      Données d'objet Met à jour le compte de l’utilisateur dans Active Directory, si l’utilisateur existe. Dans cet exemple, le titre de l’utilisateur est mis à jour :

      {"title » : « QA"}

    10. Cliquez sur Envoyer.
      Le workflow se présente comme suit :
      Figure 2. Mise à jour d’un utilisateur AD
      Mise à jour d’un utilisateur AD
    11. Associez les deux résultats de l’activité (réussite et échec) au point de terminaison.
      À ce stade, le workflow prend un ServiceNow enregistrement utilisateur comme entrée et met à jour le prénom, le nom et le titre du compte Active Directory correspondant. Si le compte n’existe pas dans Active Directory, le workflow échoue.
      Remarque :
      Dans un flux de travail normal, un certain type d’action alternative est souhaitable en cas d’échec. Par exemple, vous pouvez envoyer des notifications par e-mail et par SMS si le workflow n’a pas réussi à mettre à jour l’enregistrement.
    12. Pour éviter l’échec du workflow, ajoutez une activité Créer un objet AD aux lignes de transition entre l’activité Début et l’activité Mettre à jour un objet AD.
    13. Renseignez le formulaire de propriété Activité du workflow à l’aide des champs de la table.
      Champ Valeur
      Nom Saisissez un nom logique tel que Créer des données utilisateur.
      Contrôleur de domaine Identique à pour l’activité de mise à jour. ${workflow.inputs.u_user.ldap_server.server_url}
      Ou Unité organisationnelle à laquelle cet objet appartient. Pour les besoins de cet exemple, vous pouvez entrer OU=HQ,OU=Managed Objects
      Nom d'objet Identique à pour l’activité de mise à jour. ${workflow.inputs.u_user.user_name}
      Données d'objet Crée un compte avec uniquement le nom d’utilisateur. Pour les besoins de cet exemple, vous pouvez saisir {"givenName » : « ${workflow.inputs.u_user.first_name} », « SN » : « ${workflow.inputs.u_user.last_name} » }
    14. Cliquez sur Envoyer.
    15. Connectez le résultat d’échec de l’activité Créer un objet AD à la fin.
      Pour cet exemple, nous ignorons les erreurs. Le flux de travail ressemble maintenant à ceci :
      Figure 3. Création d’un utilisateur AD
      Création d’un utilisateur AD

      Cette procédure génère un workflow simple qui crée un compte Active Directory dépouillé composé uniquement d’un nom d’utilisateur. Le workflow met ensuite à jour ce compte avec des informations supplémentaires fournies par la ServiceNow table Utilisateur [sys_user]. Toutefois, nous ne voulons pas exécuter l’activité Créer un objet AD si le compte utilisateur existe déjà. Le workflow doit interroger Active Directory pour les enregistrements d’utilisateurs correspondants, puis créer des branches de workflow en fonction des résultats de la requête. Si un compte existe déjà, le workflow doit mettre à jour le compte. Si le compte n’existe pas, le workflow doit créer le compte dans Active Directory.

    16. Glissez-déplacez l’activité Interroger AD sur la transition entre Commencer et Créer un objet AD.
    17. Renseignez le formulaire de propriété Activité du workflow à l’aide des champs de la table.
      Champ Définition
      Nom Saisissez un nom logique tel que Rechercher un compte existant.
      Contrôleur de domaine ${workflow.inputs.u_user.ldap_server.server_url}
      Propriétés Liste de propriétés Active Directory à renvoyer, séparées par des virgules. Par exemple, givenName, SN, title. Si le champ de paramètre est vide, toutes les propriétés sont renvoyées. Dans ce workflow, nous laissons le champ vide.
      Filtre de recherche Une chaîne de filtre LDAP qui définit les paramètres de recherche. Utilisez n’importe quel critère de filtrage LDAP valide. Pour trouver des comptes utilisateurs correspondant à l’enregistrement d’entrée, nous utilisons :

      (samaccountname=${workflow.inputs.u_user.user_name})

    18. Cliquez sur Envoyer.
    19. Connectez le résultat d’échec de l’activité de requête au point de terminaison.
      N’oubliez pas que nous ignorons les erreurs dans ce workflow.
    20. Connectez le résultat Réussite de l’activité de requête à l’activité Mettre à jour l’objet AD.
      Le flux de travail ressemble maintenant à ceci :
      Figure 4. Interrogation d’AD pour les comptes d’utilisateurs
      Interrogation d’AD pour les comptes d’utilisateurs

      L’activité Query AD renvoie ses résultats sous la forme d’une chaîne JSON dans le bus de données du workflow. Cette chaîne JSON est toujours un tableau d’objets. Chaque objet correspond à une entrée Active Directory qui correspond à la requête. Notre flux de travail doit créer des branches, que ce tableau soit vide ou non.

    21. Faites glisser une activité Standard If depuis le dossier Conditions dans l’onglet Core et déposez-la sur la transition entre Interroger AD et Mettre à jour un objet AD.
    22. Renseignez le formulaire des propriétés de l’activité du workflow à l’aide des champs de la table.
      Champ Valeur
      Nom Saisissez un nom logique tel que Le compte existe.
      Avancés Cochez cette case pour ouvrir le champ de script .
      Script Pour que l’activité Si fonctionne correctement, nous devons renvoyer un oui ou un non dans la variable de réponse (var) qui correspond aux résultats Oui et Non de l’activité de requête. La ligne 1 convertit les résultats AD de requête d’une chaîne JSON en un tableau Javascript appelé queryResults. La ligne 2 vérifie la longueur de ce tableau. Si le tableau est supérieur à 0, une correspondance avec le compte a été trouvée et nous définissons notre réponse sur oui. Sinon, la réponse est non.

      var queryResults=new JSON().decode(data.get(5).output) ;

      réponse = ( queryResults.length>0 ? 'oui' : 'non' ) ;

      Remarque :
      L’expression data.get(5) dans ce script identifie la sortie Query AD dans le Databus par numéro d’ordre, puisqu’il s’agit de la cinquième activité ajoutée au workflow.
      Figure 5. Interroger les sorties AD dans le bus de données
      Interroger les sorties AD dans le bus de données
    23. Cliquez sur Envoyer.
    24. Dans le canevas, créez une transition entre le résultat Oui de l’activité Si et l’activité Mettre à jour l’objet AD.
    25. Créez une transition entre l’activité Aucun résultat de l’activité Si et l’activité Créer un objet AD.
      C’est la dernière étape. Ce workflow interroge Active Directory pour déterminer si un compte existe déjà. Si un compte existe, le workflow met à jour ce compte. Si le compte n’existe pas, le workflow crée le compte, puis met à jour Active Directory avec l’ensemble de données utilisateur configuré.
      Figure 6. Création des chemins d’accès conditionnels
      Création des chemins d’accès conditionnels