Provisionnement de journaux dans Azure Active Directory
Azure Active Directory (Azure AD) s’intègre à plusieurs services tiers pour approvisionner des utilisateurs dans votre locataire. Si vous devez résoudre un problème avec un utilisateur approvisionné, vous pouvez utiliser les informations capturées dans les journaux d’approvisionnement Azure AD pour vous aider à trouver une solution.
Deux autres journaux d’activité sont également disponibles pour vous aider à surveiller l’intégrité de votre locataire :
- Connexions : Informations sur les connexions et la manière dont vos ressources sont utilisées par vos utilisateurs.
- Audit : Informations sur les modifications appliquées à votre locataire, telles que la gestion des utilisateurs et des groupes ou les mises à jour appliquées aux ressources de votre locataire.
Cet article présente une vue d’ensemble des journaux d’approvisionnement.
À quoi sert PIM ?
Vous pouvez utiliser les journaux d’approvisionnement pour trouver des réponses à des questions telles que :
Quels groupes ont été créés avec succès dans ServiceNow ?
Quels utilisateurs ont été correctement supprimés d’Adobe ?
Quels utilisateurs de Workday ont été correctement crées dans Active Directory ?
Comment accéder aux journaux d’approvisionnement ?
Il faut qu’une licence Azure AD Premium soit associée à votre locataire pour que vous puissiez voir les journaux d’approvisionnement. Pour mettre à niveau votre édition d’Azure AD, consultez Bien démarrer avec Azure Active Directory Premium.
Les propriétaires d’applications peuvent afficher les journaux de leurs propres applications. Les rôles suivants sont nécessaires pour afficher les journaux d’approvisionnement :
- Lecteur de rapports
- Lecteur de sécurité
- Opérateur de sécurité
- Security Administrator
- Administrateur d’application
- Administrateur d'applications cloud
- Administrateur général
- Utilisateurs dans un rôle personnalisé avec l’autorisation provisioningLogs
Pour accéder aux données du journal d’approvisionnement, vous disposez des options suivantes :
Sélectionnez Journaux d’approvisionnement dans la section Surveillance d’Azure AD.
Diffusion en continu des journaux de provisionnement dans Azure Monitor. méthode qui permet une conservation étendue des données et la création de tableaux de bord, d’alertes et de requêtes personnalisés
Interrogation de l’API Microsoft Graph pour obtenir les journaux de provisionnement.
Téléchargement des journaux de provisionnement sous la forme d’un fichier CSV ou JSON.
Afficher les journaux d’approvisionnement
Pour afficher plus efficacement le journal d’approvisionnement, passez quelques instants à personnaliser l’affichage en fonction de vos besoins. Vous pouvez spécifier les colonnes à inclure et filtrer les données pour affiner les choses.
Personnaliser la disposition
Le journal d’approvisionnement a une vue par défaut, mais vous pouvez personnaliser les colonnes.
- Sélectionnez Colonnes dans le menu en haut du journal.
- Sélectionnez les colonnes que vous souhaitez afficher, puis sélectionnez le bouton Enregistrer en bas de la fenêtre.
Cette zone permet d’afficher des champs supplémentaires et de supprimer des champs déjà affichés.
Filtrer les résultats
Lorsque vous filtrez vos données d’approvisionnement, certaines valeurs de filtre sont remplies dynamiquement en fonction de votre locataire. Par exemple, si votre locataire ne comporte pas d’événements de type « créer », aucune option de filtre Créer n’apparaît.
Le filtre Identité vous permet de spécifier le nom ou l’identité qui vous intéresse. Cette identité peut être un utilisateur, un groupe, un rôle ou un autre objet.
Vous pouvez effectuer une recherche par nom ou ID de l’objet. L’ID varie selon le scénario.
- Lors du provisionnement d’un objet d’Azure AD vers Salesforce, l’ID source correspond à l’ID d’objet de l’utilisateur dans Azure AD. L’ID cible, lui, correspond à l’ID de l’utilisateur dans Salesforce.
- En cas de provisionnement de Workday vers Azure AD, l’ID source est l’ID employé du travailleur Workday. L’ID cible, lui, correspond à l’ID de l’utilisateur dans Azure AD.
- Si vous provisionnez des utilisateurs pour la synchronisation interlocataire, l’ID source est l’ID de l’utilisateur dans le locataire source. L’ID cible est l’ID de l’utilisateur dans le locataire cible.
Notes
Il se peut que le nom de l’utilisateur ne soit pas toujours présent dans la colonne Identité. Il y aura toujours un ID.
Le filtre Date vous permet de définir un intervalle de temps pour les données renvoyées. Les valeurs possibles sont les suivantes :
- Un mois
- Sept jours
- 30 jours
- 24 heures
- Intervalle de temps personnalisé (configurer une date de début et une date de fin)
Le filtre État vous permet de sélectionner les états suivants :
- Tous
- Succès
- Échec
- Ignoré
Le filtre Action permet de filtrer les actions suivantes :
- Créer
- Update
- DELETE
- Disable
- Autres
En plus des filtres de l’affichage par défaut, il est possible de définir les suivants.
ID de tâche : un ID de tâche unique est associé à chacune des applications pour lesquelles le provisionnement est activé.
ID de cycle : l’ID de cycle identifie de façon unique le cycle de provisionnement. Vous pouvez partager cet ID avec le support produit pour rechercher le cycle dans lequel cet événement s’est produit.
ID de modification : l’ID de modification est un identificateur unique de l’événement de provisionnement. Vous pouvez partager cet ID avec le support produit pour rechercher l’événement de provisionnement.
Système source : vous pouvez spécifier l’emplacement à partir duquel l’identité est provisionnée. Par exemple, lors du provisionnement d’un objet d’Azure AD vers ServiceNow, le système source est Azure AD.
Système cible : vous pouvez spécifier l’emplacement vers lequel l’identité est provisionnée. Par exemple, lors du provisionnement d’un objet d’Azure AD vers ServiceNow, le système cible est ServiceNow.
Application : vous pouvez montrer seulement les enregistrements des applications dont le nom d’affichage ou l’ID d’objet contient une chaîne spécifique. Pour la synchronisation interlocataire, utilisez l’ID d’objet de la configuration et non pas l’ID d’application.
Analyser les journaux d’approvisionnement
Lorsque vous sélectionnez un élément dans la vue de liste d’approvisionnement, vous obtenez plus de détails sur cet élément, tels que les étapes effectuées pour provisionner l’utilisateur et des conseils pour résoudre les problèmes. Les détails sont regroupés dans quatre onglets.
Étapes : procédure suivie pour provisionner un objet. L’approvisionnement d’un objet peut être constitué de quatre étapes :
- Importer l’objet
- Déterminer si l’objet est concerné
- Faire correspondre l’objet entre la source et la cible
- Provisionner l’objet (créer, mettre à jour, supprimer ou désactiver)
Résolution des problèmes et recommandations : code d’erreur et raison. Les informations sur l’erreur ne sont disponibles qu’en cas de défaillance.
Propriétés modifiées : ancienne valeur et nouvelle valeur. En l’absence d’ancienne valeur, cette colonne est vide.
Résumé: vue d’ensemble des événements et des identificateurs de l’objet dans les systèmes source et cible.
Télécharger les journaux au format CSV ou JSON
Vous pouvez télécharger les journaux de provisionnement pour plus tard en y accédant sur le Portail Azure et en sélectionnant Télécharger. Le fichier sera filtré en fonction des critères sélectionnés. Choisissez des filtres aussi précis que possible pour réduire la taille et le temps de téléchargement.
Le téléchargement CSV comprend trois fichiers :
- ProvisioningLogs : Télécharge tous les journaux, à l’exception des étapes de provisionnement et des propriétés modifiées.
- ProvisioningLogs_ProvisioningSteps : Contient les étapes de provisionnement et l’ID de la modification. Vous pouvez vous servir de l’ID de modification pour joindre l’événement aux deux autres fichiers.
- ProvisioningLogs_ModifiedProperties : Contient les attributs qui ont été modifiés et l’ID de la modification. Vous pouvez vous servir de l’ID de modification pour joindre l’événement aux deux autres fichiers.
Ouverture du fichier JSON
Pour ouvrir le fichier JSON, utilisez un éditeur de texte comme Microsoft Visual Studio Code. Visual Studio Code facilite la lecture du fichier grâce à la coloration syntaxique. Vous pouvez également ouvrir le fichier JSON en utilisant des navigateurs dans un format non modifiable, par exemple Microsoft Edge.
Mise en forme du fichier JSON
Le fichier JSON est téléchargé dans un format minimisé afin de réduire la taille du téléchargement. Ce format peut rendre la charge utile difficile à lire. Prenez connaissance des deux options possibles pour agrémenter le fichier :
Utiliser Visual Studio Code pour mettre en forme le fichier JSON
Utiliser PowerShell pour mettre en forme le fichier JSON. Ce script génère le fichier JSON dans un format comportant des tabulations et des espaces :
$JSONContent = Get-Content -Path "<PATH TO THE PROVISIONING LOGS FILE>" | ConvertFrom-JSON
$JSONContent | ConvertTo-Json > <PATH TO OUTPUT THE JSON FILE>
Analyse du fichier JSON
Voici quelques exemples de commandes à utiliser sur le fichier JSON avec PowerShell. Vous pouvez faire appel à n’importe quel langage de programmation que vous connaissez.
Tout d’abord, lisez le fichier JSON en exécutant cette commande :
$JSONContent = Get-Content -Path "<PATH TO THE PROVISIONING LOGS FILE>" | ConvertFrom-JSON
Vous pouvez maintenant analyser les données suivant votre scénario. Voici quelques exemples :
Afficher tous les ID de tâche du fichier JSON :
foreach ($provitem in $JSONContent) { $provitem.jobId }
Afficher tous les ID de modification des événements dont l’action était « créer » :
foreach ($provitem in $JSONContent) {
if ($provItem.action -eq 'Create') {
$provitem.changeId
}
}
Ce que vous devez savoir
Voici quelques conseils et considérations à prendre en compte pour le provisionnement des rapports :
Le Portail Azure stocke les données de provisionnement des rapports pendant 30 jours avec une édition Premium et pendant 7 jours avec une édition gratuite. Il est possible de publier les journaux de provisionnement dans Log Analytics à des fins de rétention au-delà de 30 jours.
Vous pouvez utiliser l’attribut d’ID de modification comme identificateur unique, ce qui peut être utile lorsque vous interagissez avec le support technique du produit, par exemple.
Il est possible que vous voyiez des événements ignorés pour les utilisateurs qui ne sont pas concernés. Ce comportement est prévu, en particulier lorsque l’étendue de synchronisation est définie sur tous les utilisateurs et groupes. Le service évalue tous les objets du locataire, y compris ceux qui ne sont pas concernés.
Les journaux de provisionnement n’affichent pas les importations de rôle (s’applique à AWS, Salesforce et Zendesk). Vous trouverez les journaux des importations de rôle dans les journaux d’audit.
Codes d’erreur
Appuyez-vous sur le tableau suivant pour mieux comprendre comment résoudre les erreurs que vous trouvez dans les journaux de provisionnement. Pour tous les codes d’erreur manquants, faites-nous part de vos commentaires en suivant le lien en bas de cette page.
Code d'erreur | Description |
---|---|
Conflit, EntryConflict |
Corrigez les valeurs d’attribut en conflit dans Azure AD ou l’application. Vous pouvez également passer en revue votre configuration d’attributs de correspondance si le compte d’utilisateur en conflit était censé être mis en correspondance et pris en charge. Pour plus d’informations sur la configuration des attributs de correspondance, consultez la documentation. |
TooManyRequests | L’application cible a rejeté cette tentative de mise à jour de l’utilisateur, car elle est surchargée et reçoit trop de requêtes. Il n’y a rien à faire. Cette tentative sera automatiquement supprimée. Microsoft a également été informé de ce problème. |
InternalServerError | L’application cible a retourné une erreur inattendue. Il se peut qu’un problème de service lié à l’application cible l’empêche de fonctionner. Cette tentative sera automatiquement mise hors service dans 40 minutes. |
InsufficientRights, MethodNotAllowed, NotPermitted, Non autorisé |
Azure AD s’est authentifié auprès de l’application cible, mais n’a pas été autorisé à effectuer la mise à jour. Passez en revue toutes les instructions fournies par l’application cible et le tutoriel de l’application correspondante. |
UnprocessableEntity | L’application cible a renvoyé une réponse inattendue. Il se peut que la configuration de l’application cible ne soit pas correcte ou qu’un problème de service lié à l’application cible l’empêche de fonctionner. |
WebExceptionProtocolError | Une erreur de protocole HTTP s’est produite lors de la connexion à l’application cible. Il n’y a rien à faire. Cette tentative sera automatiquement mise hors service dans 40 minutes. |
InvalidAnchor | Un utilisateur qui a été précédemment créé ou mis en correspondance par le service d’approvisionnement n’existe plus. Vérifiez que l’utilisateur existe. Pour forcer une nouvelle correspondance de tous les utilisateurs, utilisez l’API Microsoft Graph pour redémarrer le travail. Le redémarrage du provisionnement déclenche un cycle initial, ce qui peut prendre du temps. Le redémarrage du provisionnement supprime également le cache utilisé par le service de provisionnement pour fonctionner. De ce fait, tous les utilisateurs et groupes du locataire devront être réévalués, et certains événements de provisionnement risquent d’être abandonnés. |
NotImplemented | L’application cible a retourné une réponse inattendue. Il se peut que la configuration de l’application ne soit pas correcte ou qu’un problème de service lié à l’application cible l’empêche de fonctionner. Passez en revue toutes les instructions fournies par l’application cible et le tutoriel de l’application correspondante. |
MandatoryFieldsMissing, MissingValues |
L’utilisateur n’a pas pu être créé, car des valeurs requises sont manquantes. Corrigez les valeurs d’attribut manquantes dans l’enregistrement source ou vérifiez dans votre configuration d’attributs de correspondance qu’aucun champ obligatoire n’est omis. En savoir plus sur la configuration des attributs correspondants. |
SchemaAttributeNotFound | L’opération n’a pas pu être effectuée, car l’un des attributs spécifiés n’existe pas dans l’application cible. Consultez la documentation sur la personnalisation des attributs et vérifiez que votre configuration est correcte. |
InternalError | Une erreur de service interne s’est produite au sein du service de provisionnement Azure AD. Il n’y a rien à faire. Cette tentative sera automatiquement mise hors service dans 40 minutes. |
InvalidDomain | L’opération n’a pas pu être effectuée, car une valeur d’attribut contient un nom de domaine non valide. Mettez à jour le nom de domaine sur l’utilisateur ou ajoutez-le à la liste autorisée dans l’application cible. |
Délai d'expiration | L’opération n’a pas pu aboutir, car l’application cible a mis trop de temps à répondre. Il n’y a rien à faire. Cette tentative sera automatiquement mise hors service dans 40 minutes. |
LicenseLimitExceeded | L’utilisateur n’a pas pu être créé dans l’application cible, car il n’existe aucune licence disponible pour cet utilisateur. Procurez-vous des licences supplémentaires pour l’application cible. Vous pouvez également passer en revue vos affectations d’utilisateurs et votre configuration de mappage des attributs pour vérifier que les utilisateurs possèdent les attributs appropriés. |
DuplicateTargetEntries | L’opération n’a pas pu aboutir, car plusieurs utilisateurs ont été trouvés dans l’application cible avec les attributs de correspondance configurés. Supprimez l’utilisateur en doublon de l’application cible ou reconfigurez vos mappages d’attributs. |
DuplicateSourceEntries | L’opération n’a pas pu aboutir, car plusieurs utilisateurs ont été trouvés avec les attributs de correspondance configurés. Supprimez l’utilisateur en doublon ou reconfigurez vos mappages d’attributs. |
ImportSkipped | Lors de l’évaluation d’un utilisateur, le système tente de l’importer à partir du système source. Cette erreur se produit généralement lorsque la propriété de correspondance définie dans les mappages d’attributs n’a pas été attribuée à l’utilisateur importé. En l’absence de valeur sur l’objet utilisateur pour l’attribut de correspondance, le système ne peut pas évaluer l’étendue ni la correspondance, ni exporter les modifications. La présence de cette erreur n’indique pas que l’utilisateur est concerné, car son étendue n’a pas encore été évaluée. |
EntrySynchronizationSkipped | Le service d'approvisionnement a interrogé le système source et identifié l'utilisateur. Aucune autre mesure n'a été prise à l'égard de l'utilisateur et il a été ignoré. Il se peut que l’utilisateur ne soit pas concerné ou existe déjà dans le système cible sans qu’aucune autre modification soit nécessaire. |
SystemForCrossDomainIdentity ManagementMultipleEntriesInResponse |
Une requête GET visant à récupérer un utilisateur ou un groupe a reçu plusieurs utilisateurs ou groupes dans la réponse. Le système s’attend à ne recevoir qu’un seul utilisateur ou groupe dans la réponse. Par exemple, si vous effectuez une requête GET Group pour récupérer un groupe et indiquez un filtre pour exclure des membres, et que votre point de terminaison SCIM (System for Cross-domain Identity Management) retourne les membres, vous recevez cette erreur. |
SystemForCrossDomainIdentity ManagementServiceIncompatible |
Le service de provisionnement Azure AD ne parvient pas à analyser la réponse de l’application tierce. Collaborez avec le développeur de l’application pour vous assurer que le serveur SCIM est compatible avec le client Azure AD SCIM. |
SchemaPropertyCanOnlyAcceptValue | La propriété dans le système cible ne peut accepter qu’une seule valeur, alors que la propriété dans le système source en a plusieurs. Veillez à mapper un attribut à valeur unique à la propriété qui génère une erreur, mettre à jour la valeur dans la source pour qu’elle soit à valeur unique ou supprimer l’attribut des mappages. |
Codes d’erreur pour la synchronisation interlocataire
Utilisez le tableau suivant pour mieux comprendre comment résoudre les erreurs que vous trouvez dans les journaux de provisionnement pour la synchronisation interlocataire. Pour tous les codes d’erreur manquants, faites-nous part de vos commentaires en suivant le lien en bas de cette page.
Code d'erreur | Cause | Solution |
---|---|---|
AzureActiveDirectoryCannotUpdateObjectsOriginatedInExternalService | Le moteur de synchronisation n’a pas pu mettre à jour une ou plusieurs propriétés utilisateur dans le locataire cible. L’opération a échoué dans l’API Microsoft Graph en raison de l’application de la source d’autorité (SOA). Actuellement, les propriétés suivantes apparaissent dans la liste : Mail showInAddressList |
Dans certains cas (par exemple quand la propriété showInAddressList fait partie de la mise à jour utilisateur), le moteur de synchronisation peut réessayer automatiquement la mise à jour (utilisateur) sans la propriété dont la valeur ne convient pas. Sinon, vous devez mettre à jour la propriété directement dans le locataire cible. |
AzureDirectoryB2BManagementPolicyCheckFailure | La stratégie de synchronisation interlocataire autorisant la reprise automatique a échoué. Le moteur de synchronisation vérifie que l’administrateur du locataire cible a créé une stratégie de synchronisation interlocataire entrante autorisant la reprise automatique. Le moteur de synchronisation vérifie également si l’administrateur du locataire source a activé une stratégie de trafic sortant pour la reprise automatique. |
Vérifiez que le paramètre de reprise automatique a été activé pour les locataires source et cible. Pour plus d’informations, consultez Paramètre d’échange automatique. |
AzureActiveDirectoryQuotaLimitExceeded | Le nombre d’objets dans le locataire dépasse la limite de l’annuaire. Azure AD a des limites pour le nombre d’objets qui peuvent être créés dans un locataire. |
Vérifiez si le quota peut être augmenté. Pour plus d’informations sur les limites d’annuaire et les étapes à suivre pour augmenter le quota, consultez Limites et restrictions du service Azure AD. |
InvitationCreationFailure | Le service d’approvisionnement Azure AD a tenté d’inviter l’utilisateur dans le tenant (abonné/locataire) cible. Cette invitation a échoué. | Accédez à la page des paramètres utilisateur dans Azure AD > Utilisateurs externes > Restrictions de collaboration, puis vérifiez que la collaboration avec ce tenant (locataire/abonné) est activée. |