Collecter les journaux d'audit Microsoft Azure AD
Ce document explique comment collecter des journaux Microsoft Azure Active Directory (AD) en configurant un flux Google Security Operations.
Azure Active Directory (AZURE_AD
) s'appelle désormais Microsoft Entra ID. Les journaux d'audit Azure AD (AZURE_AD_AUDIT
) sont désormais des journaux d'audit Microsoft Entra ID.
Pour en savoir plus, consultez Ingestion de données dans Google Security Operations.
Un libellé d'ingestion identifie l'analyseur qui normalise les données de journal brutes au format UDM structuré.
Avant de commencer
Pour effectuer les tâches de cette page, assurez-vous de disposer des éléments suivants:
- Un abonnement Azure auquel vous pouvez vous connecter.
- Rôle d'administrateur global ou d'administrateur Azure AD.
- Un locataire Azure AD dans Azure.
Configurer Azure AD
- Connectez-vous au portail Azure.
- Accédez à Accueil > Enregistrement d'application, sélectionnez une application enregistrée ou enregistrez-en une si vous n'en avez pas encore créé.
- Pour enregistrer une application, dans la section Enregistrement de l'application, cliquez sur Nouvel enregistrement.
- Dans le champ Nom, indiquez le nom à afficher pour votre application.
- Dans la section Types de comptes compatibles, sélectionnez l'option requise pour spécifier qui peut utiliser l'application ou accéder à l'API.
- Cliquez sur S'inscrire.
- Accédez à la page Vue d'ensemble, puis copiez l'ID de l'application (client) et l'ID du répertoire (locataire), qui sont nécessaires pour configurer le flux Google Security Operations.
- Cliquez sur Autorisations des API.
- Cliquez sur Ajouter une autorisation, puis sélectionnez Microsoft Graph dans le nouveau volet.
- Cliquez sur Autorisations de l'application.
- Sélectionnez les autorisations AuditLog.Read.All, Directory.Read.All et SecurityEvents.Read.All. Assurez-vous que les autorisations sont des autorisations d'application et non des autorisations déléguées.
- Cliquez sur Accorder le consentement administrateur pour l'annuaire par défaut. Les applications sont autorisées à appeler des API lorsqu'elles reçoivent des autorisations de la part des utilisateurs ou des administrateurs dans le cadre du processus de consentement.
- Accédez à Paramètres > Gérer.
- Cliquez sur Certificats et secrets.
- Cliquez sur Nouvelle clé secrète client. Dans le champ Valeur, le code secret du client s'affiche.
- Copiez la valeur du code secret du client. Cette valeur ne s'affiche qu'au moment de la création. Elle est requise pour l'enregistrement de l'application Azure et pour configurer le flux Google Security Operations.
Configurer un flux dans Google Security Operations pour ingérer les journaux d'audit Azure AD
- Sélectionnez Paramètres du SIEM > Flux.
- Cliquez sur Ajouter.
- Saisissez un nom unique pour le nom du flux.
- Sélectionnez API tierce comme type de source.
- Sélectionnez Audit de l'annuaire Azure AD comme Type de journal.
- Cliquez sur Suivant.
- Configurez les paramètres d'entrée obligatoires suivants :
- ID client OAuth: spécifiez l'ID client que vous avez obtenu précédemment.
- Code secret du client OAuth: spécifiez le code secret du client que vous avez obtenu précédemment.
- ID de locataire: spécifiez l'ID de locataire que vous avez obtenu précédemment.
- Cliquez sur Suivant, puis sur Envoyer.
Pour en savoir plus sur les flux Google Security Operations, consultez la documentation sur les flux Google Security Operations. Pour en savoir plus sur les exigences de chaque type de flux, consultez la section Configuration des flux par type. Si vous rencontrez des problèmes lors de la création de flux, contactez l'assistance Google Security Operations.
Référence du mappage de champs
Cet analyseur traite les journaux d'audit de l'annuaire Azure AD au format JSON. Il extrait les champs pertinents, les transforme en modèle de données unifié (UDM) et enrichit les données avec du contexte supplémentaire, comme les informations sur l'utilisateur, les adresses IP et les résultats de sécurité. L'analyseur catégorise également les événements en fonction de leurs caractéristiques, en les mappant sur des types d'événements UDM spécifiques pour faciliter l'analyse.
Tableau de mappage UDM
Champ de journal | Mappage UDM | Logique |
---|---|---|
activityDateTime | read_only_udm.metadata.event_timestamp | Mise en correspondance directe à partir du champ de journal brut "activityDateTime". |
activityDisplayName | read_only_udm.metadata.product_event_type | Mise en correspondance directe à partir du champ de journal brut "activityDisplayName". |
additionalDetails.ApplicationId | read_only_udm.additional.fields | Mappage direct à partir du champ de journal brut "additionalDetails", où la clé est "ApplicationId". |
additionalDetails.Client | read_only_udm.network.http.user_agent | Mappage direct à partir du champ de journal brut "additionalDetails", où la clé est "Client". |
additionalDetails.ClientIpAddress | read_only_udm.principal.ip, read_only_udm.principal.asset.ip | Mappage direct à partir du champ de journal brut "additionalDetails", où la clé est "ClientIpAddress". |
additionalDetails.DomainName | read_only_udm.target.hostname, read_only_udm.target.asset.hostname | Mappage direct à partir du champ de journal brut "additionalDetails", où la clé est "DomainName". |
additionalDetails.EmailAddress | read_only_udm.target.user.email_addresses | Mappage direct à partir du champ de journal brut "additionalDetails", où la clé est "EmailAddress". |
additionalDetails.GrantType | read_only_udm.additional.fields | Mappage direct à partir du champ de journal brut "additionalDetails", où la clé est "GrantType". |
additionalDetails.LocalAccountUsername | read_only_udm.additional.fields | Mappage direct à partir du champ de journal brut "additionalDetails", où la clé est "LocalAccountUsername". |
additionalDetails.PhoneNumber | read_only_udm.target.user.phone_numbers | Mappage direct à partir du champ de journal brut "additionalDetails", où la clé est "PhoneNumber". |
additionalDetails.PolicyId | read_only_udm.security_result.rule_name | Mappage direct à partir du champ de journal brut "additionalDetails", où la clé est "PolicyId". |
additionalDetails.Scopes | read_only_udm.additional.fields | Mappage direct du champ de journal brut "additionalDetails", où la clé est "Scopes". |
additionalDetails.TenantId | read_only_udm.additional.fields | Mappage direct à partir du champ de journal brut "additionalDetails", où la clé est "TenantId". |
additionalDetails.VerificationMethod | read_only_udm.additional.fields | Mappage direct à partir du champ de journal brut "additionalDetails", où la clé est "VerificationMethod". |
appId | read_only_udm.target.process.pid | Mappage direct à partir du champ de journal brut "appId". |
appliedConditionalAccessPolicies | read_only_udm.about | Le champ "displayName" est mappé sur "read_only_udm.about.user.user_display_name" et le champ "id" est mappé sur "read_only_udm.about.user.userid". Le champ "result" est mappé sur "read_only_udm.about.labels", avec la clé définie sur "Result". |
category | read_only_udm.additional.fields, read_only_udm.security_result.category_details | Mappage direct à partir du champ de journal brut "category". La clé de "read_only_udm.additional.fields" est définie sur "log_category". |
callerIpAddress | read_only_udm.principal.ip, read_only_udm.principal.asset.ip | Mappage direct à partir du champ de journal brut "callerIpAddress". |
clientAppUsed | read_only_udm.principal.application | Mappage direct à partir du champ de journal brut "clientAppUsed". |
correlationId | read_only_udm.network.session_id | Mappage direct à partir du champ de journal brut "correlationId". |
id | read_only_udm.metadata.product_log_id | Mappage direct à partir du champ de journal brut "id". |
identity | read_only_udm.target.user.userid | Mappage direct à partir du champ de journal brut "identité". |
initiatedBy.app.appId | read_only_udm.principal.resource.attribute.labels | Mappage direct à partir du champ de journal brut "initiatedBy.app.appId". La clé de "read_only_udm.principal.resource.attribute.labels" est définie sur "ID de l'application". |
initiatedBy.app.displayName | read_only_udm.principal.application | Mappage direct à partir du champ de journal brut "initiatedBy.app.displayName". |
initiatedBy.app.servicePrincipalId | read_only_udm.principal.user.product_object_id | Mappage direct à partir du champ de journal brut "initiatedBy.app.servicePrincipalId". |
initiatedBy.app.servicePrincipalName | read_only_udm.principal.user.userid | Mappage direct à partir du champ de journal brut "initiatedBy.app.servicePrincipalName". |
initiatedBy.user.displayName | read_only_udm.principal.user.user_display_name, read_only_udm.principal.user.email_addresses | Si la valeur contient "@", elle est analysée en tant qu'adresse e-mail et mappée sur "read_only_udm.principal.user.email_addresses". Sinon, il est mappé sur "read_only_udm.principal.user.user_display_name". |
initiatedBy.user.id | read_only_udm.principal.user.product_object_id | Mappage direct à partir du champ de journal brut "initiatedBy.user.id". |
initiatedBy.user.ipAddress | read_only_udm.principal.ip, read_only_udm.principal.asset.ip | Mappage direct à partir du champ de journal brut "initiatedBy.user.ipAddress". |
initiatedBy.user.userPrincipalName | read_only_udm.principal.user.userid, read_only_udm.principal.user.email_addresses, read_only_udm.principal.administrative_domain, read_only_udm.principal.resource.attribute.labels | Si la valeur contient "@", elle est analysée en tant qu'adresse e-mail et mappée sur "read_only_udm.principal.user.email_addresses". Sinon, il est mappé sur "read_only_udm.principal.user.userid". La partie domaine de l'adresse e-mail est mappée sur "read_only_udm.principal.administrative_domain". La valeur complète est également mappée sur "read_only_udm.principal.resource.attribute.labels", avec la clé définie sur "User Principal Name" (Nom principal de l'utilisateur). |
ipAddress | read_only_udm.principal.ip, read_only_udm.principal.asset.ip | Mappage direct à partir du champ de journal brut "ipAddress". |
Niveau | read_only_udm.security_result.severity, read_only_udm.security_result.severity_details | La valeur est convertie en chaîne et mappée sur "read_only_udm.security_result.severity_details". Le champ "read_only_udm.security_result.severity" est défini sur "INFORMATIONAL". |
location.city | read_only_udm.principal.location.city | Mappage direct à partir du champ de journal brut "location.city". |
location.countryOrRegion | read_only_udm.principal.location.country_or_region | Mappage direct à partir du champ de journal brut "location.countryOrRegion". |
location.geoCoordinates.latitude | read_only_udm.principal.location.region_latitude | Mappage direct à partir du champ de journal brut "location.geoCoordinates.latitude". |
location.geoCoordinates.longitude | read_only_udm.principal.location.region_longitude | Mappage direct à partir du champ de journal brut "location.geoCoordinates.longitude". |
location.state | read_only_udm.principal.location.state | Mappage direct à partir du champ de journal brut "location.state". |
loggedByService | read_only_udm.additional.fields | Mappage direct à partir du champ de journal brut "loggedByService". La clé de "read_only_udm.additional.fields" est définie sur "loggedByService". |
operationName | read_only_udm.metadata.product_event_type | Mappage direct à partir du champ de journal brut "operationName". |
operationType | read_only_udm.security_result.action_details | Mappage direct à partir du champ de journal brut "operationType". |
properties.activityDateTime | read_only_udm.metadata.event_timestamp | Mise en correspondance directe à partir du champ de journal brut "properties.activityDateTime". |
properties.activityDisplayName | read_only_udm.metadata.product_event_type | Mise en correspondance directe à partir du champ de journal brut "properties.activityDisplayName". |
properties.appDisplayName | read_only_udm.target.application | Mappage direct à partir du champ de journal brut "properties.appDisplayName". |
properties.category | read_only_udm.security_result.category_details | Mappage direct à partir du champ de journal brut "properties.category". |
properties.id | read_only_udm.metadata.product_log_id | Mappage direct à partir du champ de journal brut "properties.id". |
properties.initiatedBy.app.appId | read_only_udm.principal.resource.attribute.labels | Mappage direct à partir du champ de journal brut "properties.initiatedBy.app.appId". La clé de "read_only_udm.principal.resource.attribute.labels" est définie sur "ID de l'application". |
properties.initiatedBy.app.displayName | read_only_udm.principal.application | Mappage direct à partir du champ de journal brut "properties.initiatedBy.app.displayName". |
properties.initiatedBy.app.servicePrincipalId | read_only_udm.principal.user.product_object_id | Mappage direct à partir du champ de journal brut "properties.initiatedBy.app.servicePrincipalId". |
properties.initiatedBy.app.servicePrincipalName | read_only_udm.principal.user.userid | Mappage direct à partir du champ de journal brut "properties.initiatedBy.app.servicePrincipalName". |
properties.initiatedBy.user.displayName | read_only_udm.principal.user.user_display_name, read_only_udm.principal.user.email_addresses | Si la valeur contient "@", elle est analysée en tant qu'adresse e-mail et mappée sur "read_only_udm.principal.user.email_addresses". Sinon, il est mappé sur "read_only_udm.principal.user.user_display_name". |
properties.initiatedBy.user.id | read_only_udm.principal.user.product_object_id | Mappage direct à partir du champ de journal brut "properties.initiatedBy.user.id". |
properties.initiatedBy.user.ipAddress | read_only_udm.principal.ip, read_only_udm.principal.asset.ip | Mappage direct à partir du champ de journal brut "properties.initiatedBy.user.ipAddress". |
properties.initiatedBy.user.userPrincipalName | read_only_udm.principal.user.userid, read_only_udm.principal.user.email_addresses, read_only_udm.principal.administrative_domain, read_only_udm.principal.resource.attribute.labels | Si la valeur contient "@", elle est analysée en tant qu'adresse e-mail et mappée sur "read_only_udm.principal.user.email_addresses". Sinon, il est mappé sur "read_only_udm.principal.user.userid". La partie domaine de l'adresse e-mail est mappée sur "read_only_udm.principal.administrative_domain". La valeur complète est également mappée sur "read_only_udm.principal.resource.attribute.labels", avec la clé définie sur "User Principal Name" (Nom principal de l'utilisateur). |
properties.loggedByService | read_only_udm.additional.fields | Mappage direct à partir du champ de journal brut "properties.loggedByService". La clé de "read_only_udm.additional.fields" est définie sur "loggedByService". |
properties.operationType | read_only_udm.security_result.action_details | Mappage direct à partir du champ de journal brut "properties.operationType". |
properties.result | read_only_udm.security_result.summary | Mappage direct à partir du champ de journal brut "properties.result". |
properties.resultReason | read_only_udm.security_result.description | Mappage direct à partir du champ de journal brut "properties.resultReason". |
properties.userPrincipalName | read_only_udm.target.user.user_display_name | Mappage direct à partir du champ de journal brut "properties.userPrincipalName". |
résultat | read_only_udm.security_result.summary, read_only_udm.security_result.action | Mappage direct à partir du champ de journal brut "result". Si la valeur est "success", "read_only_udm.security_result.action" est défini sur "ALLOW". Si la valeur est "failure", "read_only_udm.security_result.action" est défini sur "BLOCK". |
resultDescription | read_only_udm.metadata.description, read_only_udm.security_result.description | Mappage direct à partir du champ de journal brut "resultDescription". |
resultReason | read_only_udm.security_result.description | Mappage direct à partir du champ de journal brut "resultReason". |
resultType | read_only_udm.security_result.rule_id, read_only_udm.security_result.summary, read_only_udm.security_result.action | Mappage direct à partir du champ de journal brut "resultType". Si la valeur est "0", "read_only_udm.security_result.action" est défini sur "ALLOW" et "read_only_udm.security_result.summary" sur "Successful login occurred" (Connexion réussie). Sinon, "read_only_udm.security_result.action" est défini sur "BLOCK", "read_only_udm.security_result.summary" est défini sur "Failed login occurred", "read_only_udm.security_result.description" est défini sur la valeur de "resultDescription" et "read_only_udm.security_result.severity" est défini sur "ERROR". |
resourceDisplayName | read_only_udm.target.resource.name | Mappage direct à partir du champ de journal brut "resourceDisplayName". |
resourceId | read_only_udm.additional.fields | Mappage direct à partir du champ de journal brut "resourceId". La clé de "read_only_udm.additional.fields" est définie sur "resourceId". |
riskDetail | read_only_udm.additional.fields | Mappage direct à partir du champ de journal brut "riskDetail". La clé de "read_only_udm.additional.fields" est définie sur "riskDetail". |
riskEventTypes | read_only_udm.additional.fields | Mappage direct à partir du champ de journal brut "riskEventTypes". La clé de "read_only_udm.additional.fields" est définie sur "riskEventTypes". |
riskEventTypes_v2 | read_only_udm.additional.fields | Mappage direct à partir du champ de journal brut "riskEventTypes_v2". La clé de "read_only_udm.additional.fields" est définie sur "riskEventTypes_v2". |
riskLevelAggregated | read_only_udm.additional.fields | Mappage direct à partir du champ de journal brut "riskLevelAggregated". La clé de "read_only_udm.additional.fields" est définie sur "riskLevelAggregated". |
riskLevelDuringSignIn | read_only_udm.additional.fields, read_only_udm.security_result.priority | Mappage direct à partir du champ de journal brut "riskLevelDuringSignIn". La clé de "read_only_udm.additional.fields" est définie sur "riskLevelDuringSignIn". Si la valeur est "medium", "read_only_udm.security_result.priority" est défini sur "MEDIUM_PRIORITY". |
riskState | read_only_udm.additional.fields | Mappage direct à partir du champ de journal brut "riskState". La clé de "read_only_udm.additional.fields" est définie sur "riskState". |
targetResources.0.displayName | read_only_udm.target.resource.name, read_only_udm.target.user.user_display_name, read_only_udm.target.group.group_display_name | Si la valeur de "targetResources.0.type" est "User" ou "ServicePrincipal", elle est mappée sur "read_only_udm.target.user.user_display_name". Si la valeur de "targetResources.0.type" est "Group", elle est mappée sur "read_only_udm.target.group.group_display_name". Sinon, la valeur est mappée sur "read_only_udm.target.resource.name". |
targetResources.0.groupType | read_only_udm.target.group.attribute.labels | Mappage direct à partir du champ de journal brut "targetResources.0.groupType". La clé de "read_only_udm.target.group.attribute.labels" est définie sur "groupType". |
targetResources.0.id | read_only_udm.target.resource.product_object_id, read_only_udm.target.user.product_object_id, read_only_udm.target.group.product_object_id | Si la valeur de "targetResources.0.type" est "User" ou "ServicePrincipal", elle est mappée sur "read_only_udm.target.user.product_object_id". Si la valeur de "targetResources.0.type" est "Group", elle est mappée sur "read_only_udm.target.group.product_object_id". Sinon, la valeur est mappée sur "read_only_udm.target.resource.product_object_id". |
targetResources.0.modifiedProperties.displayName | read_only_udm.additional.fields, read_only_udm.target.asset.asset_id, read_only_udm.target.user.title, read_only_udm.target.resource.attribute.roles, read_only_udm.target.user.user_display_name, read_only_udm.target.user.first_name, read_only_udm.target.user.last_name, read_only_udm.target.user.department, read_only_udm.target.user.office_address.name, read_only_udm.target.user.employee_id, read_only_udm.target.user.phone_numbers, read_only_udm.target.user.userid, read_only_udm.target.resource.attribute.labels, read_only_udm.src.resource.attribute.labels | La valeur est mappée sur "read_only_udm.additional.fields", avec la clé définie sur "targetResources.modifiedProperties.displayname {index}". Si la valeur est "TargetId.DeviceId", la valeur de "targetResources.0.modifiedProperties.newValue" est mappée sur "read_only_udm.target.asset.asset_id" avec le préfixe "Device ID:". Si la valeur est "DisplayName" ou "jobTitle", la valeur de "targetResources.0.modifiedProperties.newValue" est mappée sur "read_only_udm.target.user.title". Si la valeur est "WellKnownObjectName", la valeur de "targetResources.0.modifiedProperties.newValue" est mappée sur "read_only_udm.target.resource.attribute.roles", la clé étant définie sur "name". Si la valeur est "displayName" et que "targetResources.0.displayName" est nulle, la valeur de "targetResources.0.modifiedProperties.newValue" est mappée sur "read_only_udm.target.user.user_display_name". Si la valeur est "givenName", la valeur de "targetResources.0.modifiedProperties.newValue" est mappée sur "read_only_udm.target.user.first_name". Si la valeur est "surname", la valeur de "targetResources.0.modifiedProperties.newValue" est mappée sur "read_only_udm.target.user.last_name". Si la valeur est "department", la valeur de "targetResources.0.modifiedProperties.newValue" est mappée sur "read_only_udm.target.user.department". Si la valeur est "physicalDeliveryOfficeName", la valeur de "targetResources.0.modifiedProperties.newValue" est mappée sur "read_only_udm.target.user.office_address.name". Si la valeur est "employeeId", la valeur de "targetResources.0.modifiedProperties.newValue" est mappée sur "read_only_udm.target.user.employee_id". Si la valeur est "mobile", la valeur de "targetResources.0.modifiedProperties.newValue" est mappée sur "read_only_udm.target.user.phone_numbers". Si la valeur est "MailNickname", la valeur de "targetResources.0.modifiedProperties.newValue" est mappée sur "read_only_udm.target.user.userid". Sinon, la valeur de "targetResources.0.modifiedProperties.newValue" est mappée sur "read_only_udm.target.resource.attribute.labels", la clé étant définie sur la valeur de "targetResources.0.modifiedProperties.displayName". La valeur de "targetResources.0.modifiedProperties.oldValue" est mappée sur "read_only_udm.src.resource.attribute.labels", la clé étant définie sur la valeur de "targetResources.0.modifiedProperties.displayName". |
targetResources.0.modifiedProperties.newValue | read_only_udm.target.asset.asset_id, read_only_udm.target.user.title, read_only_udm.target.resource.attribute.roles, read_only_udm.target.user.user_display_name, read_only_udm.target.user.first_name, read_only_udm.target.user.last_name, read_only_udm.target.user.department, read_only_udm.target.user.office_address.name, read_only_udm.target.user.employee_id, read_only_udm.target.user.phone_numbers, read_only_udm.target.user.userid, read_only_udm.target.resource.attribute.labels, read_only_udm.additional.fields | Si la valeur de "targetResources.0.modifiedProperties.displayName" est "TargetId.DeviceId", elle est mappée sur "read_only_udm.target.asset.asset_id" avec le préfixe "Device ID:". Si la valeur de "targetResources.0.modifiedProperties.displayName" est "DisplayName" ou "jobTitle", elle est mappée sur "read_only_udm.target.user.title". Si la valeur de "targetResources.0.modifiedProperties.displayName" est "WellKnownObjectName", elle est mappée sur "read_only_udm.target.resource.attribute.roles", avec la clé définie sur "name". Si la valeur de "targetResources.0.modifiedProperties.displayName" est "displayName" et que "targetResources.0.displayName" est nulle, la valeur est mappée sur "read_only_udm.target.user.user_display_name". Si la valeur de "targetResources.0.modifiedProperties.displayName" est "givenName", elle est mappée sur "read_only_udm.target.user.first_name". Si la valeur de "targetResources.0.modifiedProperties.displayName" est "surname", elle est mappée sur "read_only_udm.target.user.last_name". Si la valeur de "targetResources.0.modifiedProperties.displayName" est "department", elle est mappée sur "read_only_udm.target.user.department". Si la valeur de "targetResources.0.modifiedProperties.displayName" est "physicalDeliveryOfficeName", elle est mappée sur "read_only_udm.target.user.office_address.name". Si la valeur de "targetResources.0.modifiedProperties.displayName" est "employeeId", elle est mappée sur "read_only_udm.target.user.employee_id". Si la valeur de "targetResources.0.modifiedProperties.displayName" est "mobile", elle est mappée sur "read_only_udm.target.user.phone_numbers". Si la valeur de "targetResources.0.modifiedProperties.displayName" est "MailNickname", elle est mappée sur "read_only_udm.target.user.userid". Sinon, la valeur est mappée sur "read_only_udm.target.resource.attribute.labels", et la clé est définie sur la valeur de "targetResources.0.modifiedProperties.displayName". La valeur est également mappée sur "read_only_udm.additional.fields", avec la clé définie sur "targetResources.modifiedProperties.newValue {index}". |
targetResources.0.modifiedProperties.oldValue | read_only_udm.src.resource.attribute.labels, read_only_udm.additional.fields | La valeur est mappée sur "read_only_udm.src.resource.attribute.labels", et la clé est définie sur la valeur "targetResources.0.modifiedProperties.displayName". La valeur est également mappée sur "read_only_udm.additional.fields", avec la clé définie sur "targetResources.modifiedProperties.oldValue {index}". |
targetResources.0.type | read_only_udm.target.resource.resource_subtype, read_only_udm.target.resource.resource_type, read_only_udm.target.user.userid, read_only_udm.target.user.product_object_id, read_only_udm.target.user.user_display_name, read_only_udm.target.group.product_object_id, read_only_udm.target.group.group_display_name | Mappage direct à partir du champ de journal brut "targetResources.0.type". Si la valeur est "ServicePrincipal", "read_only_udm.target.resource.resource_type" est défini sur "SERVICE_ACCOUNT". Si la valeur est "Device" (Appareil), "read_only_udm.target.resource.resource_type" est défini sur "DEVICE". Sinon, "read_only_udm.target.resource.resource_type" est défini sur "UNSPECIFIED". Si la valeur est "User" ou "ServicePrincipal", la valeur de "targetResources.0.userPrincipalName" est mappée sur "read_only_udm.target.user.userid", la valeur de "targetResources.0.id" est mappée sur "read_only_udm.target.user.product_object_id" et la valeur de "targetResources.0.displayName" est mappée sur "read_only_udm.target.user.user_display_name". Si la valeur est "Group" (Groupe), la valeur de "targetResources.0.id" est mappée sur "read_only_udm.target.group.product_object_id" et la valeur de "targetResources.0.displayName" est mappée sur "read_only_udm.target.group.group_display_name". |
targetResources.0.userPrincipalName | read_only_udm.target.user.userid, read_only_udm.target.user.email_addresses | Si la valeur contient "@", elle est analysée en tant qu'adresse e-mail et mappée sur "read_only_udm.target.user.email_addresses". Sinon, il est mappé sur "read_only_udm.target.user.userid". |
targetResources.displayName | read_only_udm.about.resource.name, read_only_udm.about.user.userid, read_only_udm.about.user.user_display_name, read_only_udm.about.group.group_display_name, read_only_udm.about.group.attribute.labels | Si la valeur de "targetResources.type" est "User" ou "ServicePrincipal", elle est mappée sur "read_only_udm.about.user.user_display_name" et "read_only_udm.about.user.userid". Si la valeur de "targetResources.type" est "Group", elle est mappée sur "read_only_udm.about.group.group_display_name". La valeur de "targetResources.groupType" est mappée sur "read_only_udm.about.group.attribute.labels", avec la clé définie sur "groupType". Sinon, la valeur est mappée sur "read_only_udm.about.resource.name". |
targetResources.groupType | read_only_udm.about.group.attribute.labels, read_only_udm.target.user.group_identifiers | Mappage direct à partir du champ de journal brut "targetResources.groupType". La clé de "read_only_udm.about.group.attribute.labels" est définie sur "groupType". |
targetResources.id | read_only_udm.about.resource.product_object_id, read_only_udm.about.user.product_object_id, read_only_udm.about.group.product_object_id | Si la valeur de "targetResources.type" est "User" ou "ServicePrincipal", elle est mappée sur "read_only_udm.about.user.product_object_id". Si la valeur de "targetResources.type" est "Group", elle est mappée sur "read_only_udm.about.group.product_object_id". Sinon, la valeur est mappée sur "read_only_udm.about.resource.product_object_id". |
targetResources.modifiedProperties.displayName | read_only_udm.additional.fields | La valeur est mappée sur "read_only_udm.additional.fields", avec la clé définie sur "targetResources.modifiedProperties.displayname {index}". |
targetResources.modifiedProperties.newValue | read_only_udm.additional.fields | La valeur est mappée sur "read_only_udm.additional.fields", et la clé est définie sur "targetResources.modifiedProperties.newValue {index}". |
targetResources.modifiedProperties.oldValue | read_only_udm.additional.fields | La valeur est mappée sur "read_only_udm.additional.fields", et la clé est définie sur "targetResources.modifiedProperties.oldValue {index}". |
targetResources.type | read_only_udm.about.resource.resource_subtype, read_only_udm.about.resource.resource_type, read_only_udm.about.user.userid, read_only_udm.about.user.product_object_id, read_only_udm.about.user.user_display_name, read_only_udm.about.group.product_object_id, read_only_udm.about.group.group_display_name | Mappage direct à partir du champ de journal brut "targetResources.type". Si la valeur est "ServicePrincipal", "read_only_udm.about.resource.resource_type" est défini sur "SERVICE_ACCOUNT". Si la valeur est "Device" (Appareil), "read_only_udm.about.resource.resource_type" est défini sur "DEVICE". Sinon, "read_only_udm.about.resource.resource_type" est défini sur "UNSPECIFIED". Si la valeur est "User" ou "ServicePrincipal", la valeur de "targetResources.userPrincipalName" est mappée sur "read_only_udm.about.user.userid", la valeur de "targetResources.id" est mappée sur "read_only_udm.about.user.product_object_id" et la valeur de "targetResources.displayName" est mappée sur "read_only_udm.about.user.user_display_name". Si la valeur est "Group" (Groupe), la valeur de "targetResources.id" est mappée sur "read_only_udm.about.group.product_object_id" et la valeur de "targetResources.displayName" est mappée sur "read_only_udm.about.group.group_display_name". |
targetResources.userPrincipalName | read_only_udm.about.user.userid, read_only_udm.about.user.email_addresses | Si la valeur contient "@", elle est analysée en tant qu'adresse e-mail et mappée sur "read_only_udm.about.user.email_addresses". Sinon, il est mappé sur "read_only_udm.about.user.userid". |
tenantId | read_only_udm.additional.fields | Mappage direct à partir du champ de journal brut "tenantId". La clé de "read_only_udm.additional.fields" est définie sur "tenantId". |
temps | read_only_udm.metadata.event_timestamp | Mappage direct à partir du champ de journal brut "time". |
userId | read_only_udm.target.user.product_object_id | Mappage direct à partir du champ de journal brut "userId". La valeur est définie en fonction des valeurs d'autres champs, y compris "activityDisplayName", "principal_userid_present", "target_userid_present", "principal_ip_present", "loggedByService" et "category". La logique de définition de la valeur est complexe et dépend de la combinaison spécifique de valeurs dans ces champs. La valeur est définie sur "SSO" si la valeur de "operationName" est "Activité de connexion". La valeur est définie sur "Microsoft". La valeur est définie sur "Azure AD Directory Audit". La valeur est définie sur "AZURE_AD_AUDIT". |
Modifications
2024-07-30
- Lorsque "principal.user.userid" ou "target.user.userid" est présent, seul "metadata.event_type" est mappé sur "USER_CHANGE_PERMISSIONS".
2024-06-26
- Différence mappée entre "targetResources.modifiedProperties.newValue" et "targetResources.modifiedProperties.oldValue" vers "additional.fields".
2024-06-10
- Lorsque "initiatedBy.user.ipAddress" contient une adresse IP, définissez "principal_ip_present" sur "true".
- Ajout d'une condition pour définir "metadata.event_type" sur "USER_DELETION" uniquement lorsque "principal_ip_present" est défini sur "true".
2024-06-03
- Ajout d'un bloc JSON pour analyser les journaux non analysés.
- Ajout d'une vérification conditionnelle pour "event_type" "USER_DELETION".
2024-05-20
Correction de bug:
- Modification du mappage de "targetResource".
- La première itération de "targetResource" a été mappée sur "target" et l'itération suivante de "targetResource" sur "about".
- Modification du nom de clé du champ "loggedByService" de "log_Service" à "loggedByService".
- Modification de la mise en correspondance de "resourceId" de "target.resource.id" à "additional_fields".
- Lorsque "targetResources.type" = "Application", "Policy", "Role", "Directory", "RoleAssignment", "Request", "Provider", "Other", mappez "targetResources.displayName" sur "noun.resource.name", "targetResources.id" sur "noun.resource.product_object_id", "noun.resource.resource_type" sur "UNSPECIFIED" et "targetResource.type" sur "noun.resource.resource_subtype".
- Lorsque "targetResources.type" est défini sur "User", "targetResources.displayName" est mappé sur "noun.resource.name", "targetResources.id" sur "noun.resource.product_object_id", "noun.resource.resource_type" sur "UNSPECIFIED", "targetResource.type" sur "noun.resource.resource_subtype", "targetResources.displayName" sur "noun.user.user_display_name", "targetResources.id" sur "noun.user.product_object_id" et "targetResources.userPrincipalName" sur "noun.user.userid".
- Lorsque "targetResources.type" = "ServicePrincipal", mappez "targetResources.displayName" sur "noun.resource.name", "targetResources.id" sur "noun.resource.product_object_id", "noun.resource.resource_type" sur "SERVICE_ACCOUNT", "targetResource.type" sur "noun.resource.resource_subtype", "targetResources.displayName" sur "noun.user.user_display_name", "targetResources.id" sur "noun.user.product_object_id" et "targetResources.userPrincipalName" sur "noun.user.userid".
- Lorsque "targetResources.type" est défini sur "Group", "targetResources.displayName" est mappé sur "noun.resource.name", "targetResources.id" sur "noun.resource.product_object_id", "noun.resource.resource_type" sur "UNSPECIFIED", "targetResource.type" sur "noun.resource.resource_subtype", "targetResources.displayName" sur "noun.group.group_display_name", "targetResources.id" sur "noun.group.product_object_id" et "groupType" sur "noun.group.attribute.labels".
2024-05-17
- Mappage de "initiatedBy.user.id" sur "principal.user.product_object_id".
- Mappage de "initiatedBy.user.userPrincipalName" sur "principal.user.userid".
2024-03-18
- Les champs "targetResources.modifiedProperties.displayname", "targetResources.modifiedProperties.newValue" et "targetResources.modifiedProperties.oldValue" sont affichés même lorsque la valeur est nulle.
- Mappage de "callerIpAddress" sur "principal.ip".
2024-03-12
Correction de bug:
- Mappages synchronisés des mappages de journaux au format d'enveloppe Azure Monitor aux journaux au format de l'API Microsoft Graph.
- "target.resource.resource_type" mappé en fonction de "targetResources.type".
- Mappage de "targetResources.type" sur "target.resource.type".
2024-03-04
- "user_principal_name" a été mappé de "initiatedBy.user.userPrincipalName" à "principal.resource.attribute.labels".
- "domain" mappé de "initiatedBy.user.userPrincipalName" à "principal.administrative_domain".
- Mappage de "loggedByService" et "properties.loggedByService" sur "additional.fields".
- Modification du mappage de "initiatedBy.user.id" de "principal.user.product_object_id" à "principal.user.userid".
- Mappage de "tgt_user_principal_name" de "target.userPrincipalName" vers "target.resource.attribute.labels".
- Mappage de "domain" de "target.userPrincipalName" vers "target.administrative_domain".
- "category" a été mappé sur "additional.fields".
- Lorsque "additionalDetails[n].key" est "AppId", mappez "additionalDetails[n].value" sur "target.process.pid".
- Lorsque "additionalDetails[n].key" est "User-Agent", "additionalDetails[n].value" est mappé sur "network.http.user_agent" et "network.http.parsed_user_agent".
- Mappage de "metadata.event_type" en fonction de "loggedByService", "category" et "activityDisplayName".
- Mappage de "targetResources.modifiedProperties.displayname", "targetResources.modifiedProperties.newValue" et "targetResources.modifiedProperties.oldValue" sur "additional.fields".
2024-02-21
- Ajout d'une vérification conditionnelle si "principal.user.userid" est présent avant de définir "metadata.event_type" sur "USER_CREATION".
- Modification du mappage de "initiatedBy.user.id" de "principal.user.userid" à "principal.user.product_object_id".
- Modification du mappage de "initiatedBy.app.servicePrincipalId" de "principal.user.userid" à "principal.user.product_object_id".
- Modification du mappage de "initiatedBy.app.servicePrincipalName" de "principal.user.user_display_name" à "principal.user.userid".
- Modification du mappage de "properties.initiatedBy.user.id" de "principal.user.userid" à "principal.user.product_object_id".
- Modification du mappage de "properties.initiatedBy.app.servicePrincipalId" de "principal.user.userid" à "principal.user.product_object_id".
- Modification du mappage de "properties.initiatedBy.app.servicePrincipalName" de "principal.user.user_display_name" à "principal.user.userid".
- Si la valeur de "targetResourceType" est semblable à "User" ou "ServicePrincipal", le mappage de "target.id" est modifié de "target.user.userid" à "target.user.product_object_id".
- Si la valeur "targetResourceType" est semblable à "User" ou "ServicePrincipal", mappez "target.userPrincipalName" sur "target.user.userid".
- Si la valeur "targetResourceType" est semblable à "User" ou "ServicePrincipal", la valeur "target.displayName" est mappée sur "target.user.user_display_name".
2024-02-12
- Ajout d'une vérification conditionnelle pour "modifiedProperty.displayName", "modifiedProperty.newValue" et "modifiedProperty.oldValue".
- Lorsque "targetResource.id" est "User" ou "ServicePrincipal", il a été mappé sur "target.user.userid".
2024-01-08
Correction de bug:
- Ajout d'un modèle Grok pour valider les valeurs d'adresse e-mail avant de les mapper sur "principal.user.email_addresses" et "target.user.email_addresses".
2023-12-19
- Mappage de "targetResource.modifiedProperties.newValue", "targetResource.modifiedProperties.oldValue" et "targetResource.modifiedProperties.displayName" sur "additional.fields".
2023-11-23
- Mappage des champs "targetResources.0.modifiedProperties.newValue/oldValue" sur "event.idm.read_only_udm.additional.fields".
- Ajout d'une vérification du format de l'adresse IP dans "initiatedBy.user.ipAddress" avant le mappage vers udm.
2023-10-16
- a modifié les mappages suivants:
- La valeur "USER_UNCATEGORIZED" a été remplacée par "USER_RESOURCE_ACCESS" pour "metadata.event_type" lorsque "target.type" n'est pas "user".
- Modification du mappage de "target.id" de "principal.user.userid" à "principal.user.group_or_identifiers" lorsque "target.type" n'est pas "user".
- Le champ mappé sur "target.resource.id" a également été mappé sur "target.resource.product_object_id", car "target.resource.id" est obsolète.
2023-08-03
- a modifié les mappages suivants:
- Modification de "metadata.event_type" de "USER_UNCATEGORIZED" à "USER_CREATION" lorsque "activityDisplayName" est "Ajouter un utilisateur".
- Modification du mappage de "activityDisplayName" de "metadata.description" à "metadata.product_event_type".
- Mappage de "metadata.event_type" approprié lorsque "activityDisplayName" est "Ajouter un membre au groupe", "Ajouter un propriétaire au groupe".
- Tous les champs sous "targetResources" doivent faire partie des champs target.user. de l'UDM.
- "target.user.userid" mappé sur le bon "id" sous "targetResource".
- Pour "activityDisplayName" comme "Ajouter un membre à un rôle en dehors de PIM (permanent)" dans "activityDisplayName" mappé "target.user.xxx" lorsque le type de ressource est "Utilisateur".
- Pour "activityDisplayName", "Ajouter un membre au rôle" a mappé "Role.WellKnownObjectName" sur "target.resource.attribute.roles.name".
2023-07-24
- a mappé "targetresources.modifiedproperties.newvalue" sur "target.user.title" lorsque la valeur "targetresources.modifiedproperties.displayname" contient "role.displayname".
2023-05-25
- Correction de bug: le mappage de "target.resource.attribute.labels.value" a été remplacé par "target.user.userid" lorsque "targetResources.modifiedProperties.displayName" est égal à "mailNickname".
2023-05-05
- a modifié les mappages suivants :
- Modification de la mise en correspondance de "target.resource.attribute.labels.value" en "target.user.product_object_id" lorsque "targetResources.modifiedProperties.displayName" est égal à "objectId".
- Modification de la mise en correspondance de "target.resource.attribute.labels.value" en "target.user.user_display_name" lorsque "targetResources.modifiedProperties.displayName" est égal à "displayName".
- Modification de la mise en correspondance de "target.resource.attribute.labels.value" en "target.user.first_name" lorsque "targetResources.modifiedProperties.displayName" est égal à "givenName".
- Modification de la mise en correspondance de "target.resource.attribute.labels.value" en "target.user.title" lorsque "targetResources.modifiedProperties.displayName" est égal à "jobTitle".
- Modification de la mise en correspondance de "target.resource.attribute.labels.value" en "target.user.email_addresses" lorsque "targetResources.modifiedProperties.displayName" est égal à "mail".
- Modification de la mise en correspondance de "target.resource.attribute.labels.value" à "target.user.last_name" lorsque "targetResources.modifiedProperties.displayName" est égal à "surname".
- Modification de la mise en correspondance de "target.resource.attribute.labels.value" en "target.user.department" lorsque "targetResources.modifiedProperties.displayName" est égal à "department".
- Modification de la mise en correspondance de "target.resource.attribute.labels.value" en "target.user.office_address.name" lorsque "targetResources.modifiedProperties.displayName" est égal à "physicalDeliveryOfficeName".
- Modification de la mise en correspondance de "target.resource.attribute.labels.value" en "target.user.employee_id" lorsque "targetResources.modifiedProperties.displayName" est égal à "employeeId".
- Modification de la mise en correspondance de "target.resource.attribute.labels.value" à "target.user.phone_numbers" lorsque "targetResources.modifiedProperties.displayName" est égal à "mobile".
2023-04-18
- "initiatedBy.user.userPrincipalName" mappé sur "principal.user.user_display_name" ou "principal.user.userid" ou "principal.user.email_addresses".
- "targetResources.type" mappé sur "target.resource.attribute.labels".
2023-04-12
Amélioration :
- "initiatedBy.user.userPrincipalName" a été mappé sur "principal.user.email_addresses" et "event_type" sur "USER_UNCATEGORIZED".
- lorsque "initiatedBy.user.userPrincipalName" n'est pas nul.
- Si "targetResources.modifiedProperties.displayName" est "userPrincipalName", il a été mappé sur "principal.user.email_addresses".
- Mappage de "event_type" sur "USER_UNCATEGORIZED" lorsque "activityDisplayName" est dans ["Émettre un id_token pour l'application", "Définir des informations sur l'entreprise"].
2023-02-20
Correction de bugs :
- Plusieurs adresses IP provenant de la clé "additionalDetails.ClientIpAddress" ont été mappées sur "principal.ip".
- La valeur "USER_UNCATEGORIZED" a été mappée pour metadata.event_type lorsque "activityDisplayName" est égal à "Delete user" (Supprimer l'utilisateur) et que le champ "initiatedBy.user.userPrincipalName" n'est pas présent.
2023-02-02
- Amélioration : mappage des éléments suivants lorsque "activityDisplayName" est égal à "Delete user" (Supprimer l'utilisateur) :
- "event_type" a été mappé sur "USER_DELETION".
- Mappage de "initiatedBy.user.userPrincipalName" sur "principal.user.userid".
2022-11-24
Amélioration :
- Mappage de "modifiedProperties.newValue" sur "target.resource.attribute.labels".
- Mappage de "modifiedProperties.oldValue" sur "src.resource.attribute.labels".
2022-11-07
Amélioration :
- Mappage de "target.modifiedProperties.TargetId.DeviceId" sur "event.idm.read_only_udm.target.asset.asset_id".
2022-09-16
Amélioration :
- Mappage de "properties.initiatedBy.user.ipAddress" sur "principal.ip".
- Mappage de "properties.initiatedBy.user.userPrincipalName" sur "principal.user.userid".
- "properties.resultReason" a été mappé sur "security_result.description".
- Mappage de "identity" sur "target.user.userid".
- "operationName" a été mappé sur "metadata.product_event_type".
- Mappage de "metadata.event_type" sur "USER_UNCATEGORIZED", où "properties.activityDisplayName" est "Obtenir les propriétés des ressources d'un locataire".
- Mappage de "category" et "properties.category" sur "security_result.category_details".
- Mappage de "resultDescription" sur "metadata.description".
- Mappage de "resultType" sur "security_result.rule_id".
2022-06-20
- Amélioration : l'analyseur a été amélioré pour analyser les journaux de la catégorie "AuditLogs" et "SignInLogs" en ajoutant les mappages suivants :
- Mise en correspondance du champ "properties.id" avec "metadata.product_log_id".
- Mappage du champ "properties.loggedByService" sur "target.application".
- Mappage du champ "Niveau" sur "security_result.severity" et "security_result.severity_details".
- Mappage du champ "properties.result" sur "security_result.summary" et "security_result.action".
- Mappage du champ "properties.operationType" sur "security_result.action_details".
- Mappage du champ "properties.activityDisplayName" sur "metadata.description".
- Vous avez mappé le champ "properties.category" sur "metadata.product_event_type".
- Mappage du champ "properties.resultReason" sur "security_result.description".
- Mappage du champ "properties.initiatedBy.app.displayName" sur "principal.application".
- Mappage du champ "properties.ipAddress" sur "principal.ip".
- Mappage du champ "properties.initiatedBy.app.servicePrincipalId" sur "principal.user.userid".
- Mappage du champ "properties.initiatedBy.app.servicePrincipalName" sur "principal.user.user_display_name".
- Mappage des champs "properties.appId" et "properties.initiatedBy.app.appId" sur "principal.resource.attribute.labels".
- Mappage du champ "properties.location.city" sur "principal.location.city".
- Mappage du champ "properties.location.state" sur "principal.location.state".
- Mappage du champ "properties.location.countryOrRegion" sur "principal.location.country_or_region".
- Mappage du champ "properties.location.geoCoordinates.latitude" sur "principal.location.region_latitude".
- Mappage du champ "properties.location.geoCoordinates.longitude" sur "principal.location.region_longitude".
- Mappage des champs "properties.targetResources.modifiedProperties" sur "target.user.attribute.labels".
- Mappage du champ "targetResources.displayName" sur "target.user.user_display_name".
- Mappage du champ "targetResources.id" sur "target.user.userid".
- Mappage des champs "properties.additionalDetails", "properties.riskDetail", "properties.riskEventTypes", "properties.riskEventTypes_v2", "properties.riskLevelAggregated", "properties.riskLevelDuringSignIn", "properties.riskState", "properties.conditionalAccessStatus", "tenantId" sur "additional.fields".
- Mappage du champ "operationVersion" sur "metadata.product_version".
- Mappage du champ "properties.appliedConditionalAccessPolicies.displayName" sur "about.user.user_display_name".
- Mappage du champ "properties.appliedConditionalAccessPolicies..id" sur "about.user.userid".
- Mappage du champ "properties.appliedConditionalAccessPolicies.result" sur "about.labels".