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.
- Vue d’ensemble d’Azure Monitor
- Configurer un espace de travail Log Analytics
- Intégrer les journaux d’activité aux journaux Azure Monitor
Pour intégrer des journaux d’approvisionnement à des journaux Azure Monitor :
Connectez-vous au Centre d’administration de Microsoft Entra en tant qu’Administrateur de la sécurité.
Accédez à Identité>Surveillance et intégrité>Paramètres de diagnostic.
Choisissez les journaux que vous souhaitez diffuser, sélectionnez l’option Envoyer à l’espace de travail Log Analytics et renseignez les champs.
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.
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.
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é.
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.