Découvrez comment l’approvisionnement s’intègre aux journaux Azure Monitor

L’approvisionnement s’intègre aux journaux Azure Monitor et à Log Analytics. Grâce à l’analyse Azure, vous pouvez effectuer diverses opérations, comme créer des classeurs, également appelés tableaux de bord, stocker des journaux d’approvisionnement pendant plus de 30 jours et créer des requêtes et des alertes personnalisées. Cet article explique comment l’approvisionnement des journaux est intégré aux journaux Azure Monitor. Pour en savoir plus sur le fonctionnement général des journaux d’approvisionnement, consultez Journaux d’approvisionnement.

Activation des journaux d’approvisionnement

Si vous n’êtes pas déjà familiarisé avec Azure Monitor et Log Analytics, explorez les ressources suivantes, puis revenez en arrière pour en savoir plus sur l’intégration des journaux d’approvisionnement d’applications avec les journaux Azure Monitor.

Pour intégrer des journaux d’approvisionnement à des journaux Azure Monitor :

  1. Connectez-vous au Centre d’administration de Microsoft Entra en tant qu’Administrateur de la sécurité.

  2. Créez un espace de travail Log Analytics.

  3. Accédez à Identité>Surveillance et intégrité>Paramètres de diagnostic.

    Capture d’écran de l’accès aux paramètres de diagnostic.

  4. Choisissez les journaux que vous souhaitez diffuser, sélectionnez l’option Envoyer à l’espace de travail Log Analytics et renseignez les champs.

    Capture d’écran de l’activation des journaux d’approvisionnement d’applications.

  5. Accédez à Identité>Surveillance et intégrité>Analytique des journaux d’activité et commencez à interroger les données.

Remarque

Il peut s’écouler un certain temps avant que les journaux n’apparaissent dans Log Analytics après l’activation de l’intégration. Si vous recevez une erreur indiquant que l’abonnement n’est pas inscrit pour utiliser microsoft.insights revenez après quelques minutes.

Vue d’ensemble des données

Le flux de données sous-jacent que l’approvisionnement envoie aux visionneuses de journaux est presque identique. Les journaux Azure Monitor reçoivent presque le même flux que le Centre d’administration Microsoft Entra et l’API Microsoft Graph. Il n’existe que quelques différences dans les champs des journaux, comme indiqué dans le tableau suivant. Log Analytics peut afficher plus d’événements que les journaux dans le Centre d’administration Microsoft Entra. Pour en savoir plus sur ces champs, consultez Répertorier provisioningObjectSummary.

Journaux d’activité Azure Monitor Interface utilisateur du portail Azure API Azure
errorDescription reason resultDescription
status resultType resultType
activityDateTime TimeGenerated TimeGenerated

Classeurs Microsoft Entra

Les classeurs d’identité Microsoft Entra fournissent un canevas flexible pour l’analyse des données. Ils permettent également de créer des rapports visuels enrichis au sein du Portail Azure. Pour plus d’informations, consultez Classeurs Microsoft Entra.

Analyse de l’approvisionnement et Insights sur l’approvisionnement sont deux des classeurs prédéfinis disponibles. Pour afficher les données, assurez-vous que tous les filtres (timeRange, jobID, appName) sont remplis. Vérifiez également que l’application a été approvisionnée, sinon les journaux ne contiennent aucune donnée.

Classeurs d’approvisionnement d’application

Tableau de bord d’approvisionnement d’applications

Requêtes personnalisées

Vous pouvez créer des requêtes personnalisées et afficher les données dans vos classeurs. Pour en savoir plus, consultez Prise en main des requêtes de journal dans Azure Monitor et Requêtes de journal dans Azure Monitor.

Voici quelques exemples pour prendre en main les journaux d’approvisionnement d’applications.

Interroger les journaux d’un utilisateur en fonction de son ID dans le système source :

AADProvisioningLogs
| extend SourceIdentity = parse_json(SourceIdentity)
| where tostring(SourceIdentity.Id) == "49a4974bb-5011-415d-b9b8-78caa7024f9a"

Total par ErrorCode :

AADProvisioningLogs
| summarize count() by ErrorCode = ResultSignature

Total d’événements par jour et par action :

AADProvisioningLogs
| where TimeGenerated > ago(7d)
| summarize count() by Action, bin(TimeGenerated, 1d)

Prenez 100 événements et les propriétés de clé du projet :

AADProvisioningLogs
| extend SourceIdentity = parse_json(SourceIdentity)
| extend TargetIdentity = parse_json(TargetIdentity)
| extend ServicePrincipal = parse_json(ServicePrincipal)
| where tostring(SourceIdentity.identityType) == "Group"
| project tostring(ServicePrincipal.Id), tostring(ServicePrincipal.Name), ModifiedProperties, JobId, Id, CycleId, ChangeId, Action, SourceIdentity.identityType, SourceIdentity.details, TargetIdentity.identityType, TargetIdentity.details, ProvisioningSteps
| take 100

Récupérez des groupes avec des membres ignorés en raison de problèmes de résolution des références.

AADProvisioningLogs
| where TimeGenerated >= ago(10d)
| where JobId == "Azure2Azure.73f0883f-d67d-4af1-ac8a-45367f8982e0.5ef3be57-f45f-451g-88c4-68a7fda680bb" // Customize by adding a specific app JobId
| extend SourceIdentity = parse_json(SourceIdentity)
| extend ProvisioningSteps = parse_json(ProvisioningSteps)
| where tostring(SourceIdentity.identityType) == "Group"
| where ProvisioningSteps matches regex "UnableToResolveReferenceAttributeValue"
| parse tostring(ProvisioningSteps.[2].description) with "We were unable to assign " userObjectId " as the members of " groupDisplayName "." *
| project groupDisplayName, userObjectId,  JobId
| take 100

Résumez les actions par application.

AADProvisioningLogs
| where TimeGenerated > ago(30d)
| where JobId == "Azure2Azure.73f0883f-d67d-4af1-ac8a-45367f8982e0.5ef3be57-f45f-451g-88c4-68a7fda680bb" // Customize by adding a specific app JobId
| extend ProvisioningSteps = parse_json(ProvisioningSteps)
| extend eventName = tostring(ProvisioningSteps.[-1].name)
| summarize count() by eventName, JobId
| order by JobId asc
| take 5

Identifiez les pics dans des opérations spécifiques.

AADProvisioningLogs
| where TimeGenerated > ago(30d)
| where JobId == "scim.73f0883f-d67d-4af1-ac8a-45367f8982e0.5ef3be57-f45f-451g-88c4-68a7fda680bb" // Customize by adding a specific app JobId
| extend ProvisioningSteps = parse_json(ProvisioningSteps)
| extend eventName = tostring(ProvisioningSteps.[-1].name)
| summarize count() by eventName, bin(TimeGenerated, 1d)
| render timechart

Alertes personnalisées

Azure Monitor vous permet de configurer des alertes personnalisées afin de recevoir des notifications sur les principaux événements liés à l’approvisionnement. Par exemple, vous souhaiterez peut-être recevoir une alerte en cas de défaillance. Ou peut-être en cas de pics de désactivation ou de suppression. Un autre exemple d’alerte que vous pourriez vouloir recevoir est l’absence d’approvisionnement, qui indique un problème.

Pour en savoir plus sur les alertes, consultez Alertes de journal Azure Monitor.

Alerte en cas de pic de défaillances. Remplacez jobID par le jobID de votre application.

Capture d’écran d’une alerte en cas de pic de défaillances.

Il peut y avoir un problème qui a provoqué l’arrêt de l’exécution du service d’approvisionnement. Utilisez l’alerte suivante pour détecter quand il n’y a pas d’événements d’approvisionnement pendant un intervalle de temps donné.

Capture d’écran d’un message d’erreur du journal d’approvisionnement.

Alerte en cas de pic de désactivations ou de suppressions.

Capture d’écran d’une alerte en cas de pic de désactivations ou de suppressions.

Contributions de la communauté

Nous adoptons une approche open source et basée sur la communauté pour les requêtes et les tableaux de bord d’approvisionnement des applications. Créez une requête, une alerte ou un classeur que vous estimez utile aux autres, publiez-le/la sur le référentiel GitHub AzureMonitorCommunity. Envoyez-nous un e-mail avec un lien. Nous examinons et publions des requêtes et des tableaux de bord sur le service afin que d’autres utilisateurs en bénéficient. Contactez-nous à l’adresse provisioningfeedback@microsoft.com.

Étapes suivantes