Collecter les journaux 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 des journaux 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 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 de mappage de champ
Ce code d'analyseur transforme les journaux Azure AD bruts au format JSON en modèle de données unifié (UDM). Il commence par normaliser les données en supprimant les champs inutiles, puis extrait les informations pertinentes telles que les informations sur l'utilisateur, les codes temporels et les détails de l'événement, en les mappant sur les champs UDM correspondants pour une représentation et une analyse cohérentes.
Tableau de mappage UDM
Champ de journal | Mappage UDM | Logique |
---|---|---|
activityDateTime | read_only_udm.metadata.event_timestamp.seconds | La valeur est extraite du champ activityDateTime et convertie en secondes depuis l'epoch. |
activityDisplayName | read_only_udm.security_result.summary | La valeur est mappée directement à partir du champ activityDisplayName . |
additionalDetails.0.value | read_only_udm.network.http.user_agent | La valeur est mappée directement à partir du champ additionalDetails.0.value . |
additionalDetails.1.key | read_only_udm.target.resource.attribute.labels.key | La valeur est mappée directement à partir du champ additionalDetails.1.key . |
additionalDetails.1.value | read_only_udm.target.resource.attribute.labels.value | La valeur est mappée directement à partir du champ additionalDetails.1.value . |
am_category | read_only_udm.metadata.description | La valeur est mappée directement à partir du champ am_category . |
am_tenantId | read_only_udm.metadata.product_deployment_id | La valeur est mappée directement à partir du champ am_tenantId . |
appDisplayName | read_only_udm.target.application | La valeur est mappée directement à partir du champ appDisplayName . Si appDisplayName est vide, la valeur est extraite de resourceDisplayName . |
appId | read_only_udm.target.resource.attribute.labels.value | La valeur est mappée directement à partir du champ appId . |
appliedConditionalAccessPolicies.displayName | read_only_udm.about.user.user_display_name | La valeur est mappée directement à partir du champ appliedConditionalAccessPolicies.displayName . |
appliedConditionalAccessPolicies.enforcedGrantControls | read_only_udm.security_result.rule_labels.value | La valeur est mappée directement à partir du champ appliedConditionalAccessPolicies.enforcedGrantControls . |
appliedConditionalAccessPolicies.enforcedSessionControls | read_only_udm.security_result.rule_labels.value | La valeur est mappée directement à partir du champ appliedConditionalAccessPolicies.enforcedSessionControls . |
appliedConditionalAccessPolicies.id | read_only_udm.about.user.userid | La valeur est mappée directement à partir du champ appliedConditionalAccessPolicies.id . |
appliedConditionalAccessPolicies.result | read_only_udm.about.labels.value | La valeur est mappée directement à partir du champ appliedConditionalAccessPolicies.result . |
authenticationDetails.authenticationMethod | read_only_udm.security_result.detection_fields.value | La valeur est mappée directement à partir du champ authenticationDetails.authenticationMethod . |
authenticationDetails.authenticationMethodDetail | read_only_udm.security_result.detection_fields.value | La valeur est mappée directement à partir du champ authenticationDetails.authenticationMethodDetail . |
authenticationDetails.authenticationStepDateTime | read_only_udm.security_result.detection_fields.value | La valeur est mappée directement à partir du champ authenticationDetails.authenticationStepDateTime . |
authenticationDetails.authenticationStepRequirement | read_only_udm.security_result.detection_fields.value | La valeur est mappée directement à partir du champ authenticationDetails.authenticationStepRequirement . |
authenticationDetails.authenticationStepResultDetail | read_only_udm.security_result.detection_fields.value | La valeur est mappée directement à partir du champ authenticationDetails.authenticationStepResultDetail . |
authenticationProcessingDetails.key | read_only_udm.additional.fields.key | La valeur est mappée directement à partir du champ authenticationProcessingDetails.key , précédée du préfixe "authenticationProcessingDetails - ". |
authenticationProcessingDetails.value | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ authenticationProcessingDetails.value . |
callerIpAddress | read_only_udm.principal.ip | La valeur est mappée directement à partir du champ callerIpAddress . |
callerIpAddress | read_only_udm.principal.asset.ip | La valeur est mappée directement à partir du champ callerIpAddress . |
category | read_only_udm.metadata.description | La valeur est mappée directement à partir du champ category . |
clientAppUsed | read_only_udm.principal.application | La valeur est mappée directement à partir du champ clientAppUsed . |
conditionalAccessStatus | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ conditionalAccessStatus . |
correlationId | read_only_udm.network.session_id | La valeur est mappée directement à partir du champ correlationId . |
correlationId | read_only_udm.security_result.detection_fields.value | La valeur est mappée directement à partir du champ correlationId . |
createdDateTime | read_only_udm.metadata.event_timestamp.seconds | La valeur est extraite du champ createdDateTime et convertie en secondes depuis l'epoch. |
deviceDetail.browser | read_only_udm.network.http.user_agent | La valeur est mappée directement à partir du champ deviceDetail.browser . |
deviceDetail.deviceId | read_only_udm.principal.asset.asset_id | La valeur est mappée directement à partir du champ deviceDetail.deviceId , précédée du préfixe "ID de l'appareil:". |
deviceDetail.deviceId | read_only_udm.principal.asset_id | La valeur est mappée directement à partir du champ deviceDetail.deviceId , avec le préfixe "ID de l'appareil:". |
deviceDetail.displayName | read_only_udm.principal.asset.hostname | La valeur est mappée directement à partir du champ deviceDetail.displayName . |
deviceDetail.isCompliant | read_only_udm.principal.asset.attribute.labels.value | La valeur est mappée directement à partir du champ deviceDetail.isCompliant . |
deviceDetail.isManaged | read_only_udm.principal.asset.attribute.labels.value | La valeur est mappée directement à partir du champ deviceDetail.isManaged . |
deviceDetail.operatingSystem | read_only_udm.principal.platform_version | La valeur est mappée directement à partir du champ deviceDetail.operatingSystem . |
deviceDetail.trustType | read_only_udm.principal.asset.attribute.labels.value | La valeur est mappée directement à partir du champ deviceDetail.trustType . |
durationMs | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ durationMs . |
errorCode | read_only_udm.security_result.rule_id | La valeur est mappée directement à partir du champ errorCode . |
identity | read_only_udm.target.user.user_display_name | La valeur est mappée directement à partir du champ identity s'il est différent de userId et ne correspond pas à un format d'adresse e-mail. |
initiatedBy.user.displayName | read_only_udm.principal.user.user_display_name | La valeur est mappée directement à partir du champ initiatedBy.user.displayName . |
initiatedBy.user.id | read_only_udm.principal.user.userid | La valeur est mappée directement à partir du champ initiatedBy.user.id . |
initiatedBy.user.ipAddress | read_only_udm.principal.ip | La valeur est mappée directement à partir du champ initiatedBy.user.ipAddress . |
initiatedBy.user.ipAddress | read_only_udm.principal.asset.ip | La valeur est mappée directement à partir du champ initiatedBy.user.ipAddress . |
initiatedBy.user.userPrincipalName | read_only_udm.principal.user.email_addresses | La valeur est mappée directement à partir du champ initiatedBy.user.userPrincipalName si elle correspond à un modèle d'adresse e-mail. |
ipAddress | read_only_udm.principal.ip | La valeur est extraite du champ ipAddress à l'aide d'un modèle Grok pour extraire l'adresse IP. |
ipAddress | read_only_udm.principal.asset.ip | La valeur est extraite du champ ipAddress à l'aide d'un modèle Grok pour extraire l'adresse IP. |
isInteractive | read_only_udm.extensions.auth.mechanism | La valeur est mappée sur "INTERACTIVE" si isInteractive est "true", sinon elle est mappée sur "MECHANISM_OTHER". |
isInteractive | read_only_udm.security_result.detection_fields.value | La valeur est mappée directement à partir du champ isInteractive . |
level | read_only_udm.security_result.severity | La valeur est mappée à partir du champ level selon la logique suivante: * "Information", "Informational", "0", "4" sont mappés sur "INFORMATIONAL". * "Avertissement", "1" et "3" sont mappés sur "MOYENNE". * "Error" et "2" sont mappés sur "ERROR". * "Critical", "CRITICAL" et "critical" sont mappés sur "CRITICAL". |
level | read_only_udm.security_result.severity_details | La valeur est mappée directement à partir du champ level . |
location.city | read_only_udm.principal.location.city | La valeur est mappée directement à partir du champ location.city . |
location.countryOrRegion | read_only_udm.principal.location.country_or_region | La valeur est mappée directement à partir du champ location.countryOrRegion . |
location.geoCoordinates.latitude | read_only_udm.principal.location.region_coordinates.latitude | La valeur est mappée directement à partir du champ location.geoCoordinates.latitude et convertie en float. |
location.geoCoordinates.latitude | read_only_udm.principal.location.region_latitude | La valeur est mappée directement à partir du champ location.geoCoordinates.latitude et convertie en float. |
location.geoCoordinates.longitude | read_only_udm.principal.location.region_coordinates.longitude | La valeur est mappée directement à partir du champ location.geoCoordinates.longitude et convertie en float. |
location.geoCoordinates.longitude | read_only_udm.principal.location.region_longitude | La valeur est mappée directement à partir du champ location.geoCoordinates.longitude et convertie en float. |
location.state | read_only_udm.principal.location.state | La valeur est mappée directement à partir du champ location.state . |
networkLocationDetails.networkNames | read_only_udm.additional.fields.value.string_value | La valeur est générée en concatenant toutes les valeurs du tableau networkLocationDetails.networkNames , séparées par des virgules. |
networkLocationDetails.networkType | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ networkLocationDetails.networkType . |
networkLocationDetails.networkType | read_only_udm.security_result.detection_fields.value | La valeur est mappée directement à partir du champ networkLocationDetails.networkType . |
operationName | read_only_udm.metadata.event_type | La valeur est mappée sur "USER_LOGIN" si operationName est "Activité de connexion", sur "USER_CHANGE_PERMISSIONS" si operationName est "Ajouter un membre au groupe" et sur "USER_RESOURCE_UPDATE_PERMISSIONS" si operationName est "Ajouter une affectation de rôle d'application au principal de service". Sinon, la valeur est déterminée en fonction de la présence d'autres champs: * "USER_LOGIN" si has_target_user est défini sur "true". * "USER_UNCATEGORIZED" si has_principal_user est "true". * "STATUS_UPDATE" si has_principal est défini sur "true". * "GENERIC_EVENT" dans le cas contraire. |
operationType | read_only_udm.security_result.action_details | La valeur est mappée directement à partir du champ operationType . |
properties.activity | read_only_udm.security_result.summary | La valeur est mappée directement à partir du champ properties.activity . |
properties.activityDateTime | read_only_udm.metadata.event_timestamp.seconds | La valeur est extraite du champ properties.activityDateTime et convertie en secondes depuis l'epoch. |
properties.additionalInfo | read_only_udm.network.http.user_agent | La valeur est extraite du champ properties.additionalInfo en analysant la chaîne JSON et en extrayant la valeur correspondant à la clé "userAgent". |
properties.additionalInfo | read_only_udm.target.url | La valeur est extraite du champ properties.additionalInfo en analysant la chaîne JSON et en extrayant la valeur correspondant à la clé "alertUrl". |
properties.appId | read_only_udm.target.resource.attribute.labels.value | La valeur est mappée directement à partir du champ properties.appId . |
properties.appDisplayName | read_only_udm.target.application | La valeur est mappée directement à partir du champ properties.appDisplayName . |
properties.appliedConditionalAccessPolicies.displayName | read_only_udm.security_result.rule_name | La valeur est mappée directement à partir du champ properties.appliedConditionalAccessPolicies.displayName . |
properties.appliedConditionalAccessPolicies.id | read_only_udm.security_result.rule_id | La valeur est mappée directement à partir du champ properties.appliedConditionalAccessPolicies.id . |
properties.appliedConditionalAccessPolicies.result | read_only_udm.security_result.detection_fields.value | La valeur est mappée directement à partir du champ properties.appliedConditionalAccessPolicies.result . |
properties.authenticationDetails.authenticationMethod | read_only_udm.security_result.detection_fields.value | La valeur est mappée directement à partir du champ properties.authenticationDetails.authenticationMethod . |
properties.authenticationDetails.authenticationMethodDetail | read_only_udm.security_result.detection_fields.value | La valeur est mappée directement à partir du champ properties.authenticationDetails.authenticationMethodDetail . |
properties.authenticationDetails.authenticationStepDateTime | read_only_udm.security_result.detection_fields.value | La valeur est mappée directement à partir du champ properties.authenticationDetails.authenticationStepDateTime . |
properties.authenticationDetails.authenticationStepRequirement | read_only_udm.security_result.detection_fields.value | La valeur est mappée directement à partir du champ properties.authenticationDetails.authenticationStepRequirement . |
properties.authenticationDetails.authenticationStepResultDetail | read_only_udm.security_result.detection_fields.value | La valeur est mappée directement à partir du champ properties.authenticationDetails.authenticationStepResultDetail . |
properties.authenticationProcessingDetails.key | read_only_udm.additional.fields.key | La valeur est mappée directement à partir du champ properties.authenticationProcessingDetails.key , précédée du préfixe "properties authenticationProcessingDetails - ". |
properties.authenticationProcessingDetails.value | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ properties.authenticationProcessingDetails.value . |
properties.authenticationRequirement | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ properties.authenticationRequirement . |
properties.authenticationRequirementPolicies.detail | read_only_udm.security_result.detection_fields.value | La valeur est mappée directement à partir du champ properties.authenticationRequirementPolicies.detail . |
properties.authenticationRequirementPolicies.requirementProvider | read_only_udm.security_result.detection_fields.value | La valeur est mappée directement à partir du champ properties.authenticationRequirementPolicies.requirementProvider . |
properties.clientAppUsed | read_only_udm.principal.application | La valeur est mappée directement à partir du champ properties.clientAppUsed . |
properties.conditionalAccessStatus | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ properties.conditionalAccessStatus . |
properties.createdDateTime | read_only_udm.metadata.event_timestamp.seconds | La valeur est extraite du champ properties.createdDateTime et convertie en secondes depuis l'epoch. |
properties.crossTenantAccessType | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ properties.crossTenantAccessType . |
properties.detectedDateTime | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ properties.detectedDateTime . |
properties.detectionTimingType | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ properties.detectionTimingType . |
properties.homeTenantId | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ properties.homeTenantId . |
properties.id | read_only_udm.metadata.product_log_id | La valeur est mappée directement à partir du champ properties.id . |
properties.initiatedBy.user.displayName | read_only_udm.principal.user.user_display_name | La valeur est mappée directement à partir du champ properties.initiatedBy.user.displayName . |
properties.initiatedBy.user.id | read_only_udm.principal.user.windows_sid | La valeur est mappée directement à partir du champ properties.initiatedBy.user.id . |
properties.initiatedBy.user.ipAddress | read_only_udm.principal.ip | La valeur est mappée directement à partir du champ properties.initiatedBy.user.ipAddress . |
properties.initiatedBy.user.ipAddress | read_only_udm.principal.asset.ip | La valeur est mappée directement à partir du champ properties.initiatedBy.user.ipAddress . |
properties.initiatedBy.user.userPrincipalName | read_only_udm.principal.user.userid | La valeur est mappée directement à partir du champ properties.initiatedBy.user.userPrincipalName si elle ne correspond pas à un modèle d'adresse e-mail. |
properties.initiatedBy.user.userPrincipalName | read_only_udm.principal.user.email_addresses | La valeur est mappée directement à partir du champ properties.initiatedBy.user.userPrincipalName si elle correspond à un modèle d'adresse e-mail. |
properties.ipAddress | read_only_udm.principal.ip | La valeur est extraite du champ properties.ipAddress à l'aide d'un modèle Grok pour extraire l'adresse IP. |
properties.ipAddress | read_only_udm.principal.asset.ip | La valeur est extraite du champ properties.ipAddress à l'aide d'un modèle Grok pour extraire l'adresse IP. |
properties.isGuest | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ properties.isGuest . |
properties.isDeleted | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ properties.isDeleted . |
properties.isProcessing | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ properties.isProcessing . |
properties.lastUpdatedDateTime | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ properties.lastUpdatedDateTime . |
properties.location.city | read_only_udm.principal.location.city | La valeur est mappée directement à partir du champ properties.location.city . |
properties.location.countryOrRegion | read_only_udm.principal.location.country_or_region | La valeur est mappée directement à partir du champ properties.location.countryOrRegion . |
properties.location.geoCoordinates.latitude | read_only_udm.principal.location.region_coordinates.latitude | La valeur est mappée directement à partir du champ properties.location.geoCoordinates.latitude et convertie en float. |
properties.location.geoCoordinates.latitude | read_only_udm.principal.location.region_latitude | La valeur est mappée directement à partir du champ properties.location.geoCoordinates.latitude et convertie en float. |
properties.location.geoCoordinates.longitude | read_only_udm.principal.location.region_coordinates.longitude | La valeur est mappée directement à partir du champ properties.location.geoCoordinates.longitude et convertie en float. |
properties.location.geoCoordinates.longitude | read_only_udm.principal.location.region_longitude | La valeur est mappée directement à partir du champ properties.location.geoCoordinates.longitude et convertie en float. |
properties.location.state | read_only_udm.principal.location.state | La valeur est mappée directement à partir du champ properties.location.state . |
properties.networkLocationDetails.networkNames | read_only_udm.additional.fields.value.string_value | La valeur est générée en concatenant toutes les valeurs du tableau properties.networkLocationDetails.networkNames , séparées par des virgules. |
properties.networkLocationDetails.networkType | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ properties.networkLocationDetails.networkType . |
properties.networkLocationDetails.networkType | read_only_udm.security_result.detection_fields.value | La valeur est mappée directement à partir du champ properties.networkLocationDetails.networkType . |
properties.resourceServicePrincipalId | read_only_udm.target.resource.attribute.labels.value | La valeur est mappée directement à partir du champ properties.resourceServicePrincipalId . |
properties.riskDetail | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ properties.riskDetail . |
properties.riskEventType | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ properties.riskEventType . |
properties.riskLastUpdatedDateTime | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ properties.riskLastUpdatedDateTime . |
properties.riskLevel | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ properties.riskLevel . |
properties.riskLevelDuringSignIn | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ properties.riskLevelDuringSignIn . |
properties.riskState | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ properties.riskState . |
properties.riskType | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ properties.riskType . |
properties.source | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ properties.source . |
properties.targetResources.0.id | read_only_udm.target.user.product_object_id | La valeur est mappée directement à partir du champ properties.targetResources.0.id . |
properties.targetResources.modifiedProperties.0.newValue | read_only_udm.target.group.product_object_id | La valeur est mappée directement à partir du champ properties.targetResources.modifiedProperties.0.newValue . |
properties.tokenIssuerType | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ properties.tokenIssuerType . |
properties.userAgent | read_only_udm.network.http.parsed_user_agent | La valeur est mappée directement à partir du champ properties.userAgent et convertie en objet user-agent analysé. |
properties.userAgent | read_only_udm.network.http.user_agent | La valeur est mappée directement à partir du champ properties.userAgent . |
properties.userId | read_only_udm.target.user.product_object_id | La valeur est mappée directement à partir du champ properties.userId . |
properties.userPrincipalName | read_only_udm.target.user.userid | La valeur est mappée directement à partir du champ properties.userPrincipalName si elle ne correspond pas à un modèle d'adresse e-mail. |
properties.userPrincipalName | read_only_udm.target.user.email_addresses | La valeur est mappée directement à partir du champ properties.userPrincipalName si elle correspond à un modèle d'adresse e-mail. |
résultat | read_only_udm.security_result.action | La valeur est mappée sur "ALLOW" si result est "success". |
résultat | read_only_udm.security_result.action_details | La valeur est mappée directement à partir du champ result si result est "success". |
resultDescription | read_only_udm.security_result.description | La valeur est mappée directement à partir du champ resultDescription . |
resultSignature | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ resultSignature . |
resultType | read_only_udm.security_result.action | La valeur est mappée sur "ALLOW" si resultType est "0". |
resultType | read_only_udm.security_result.rule_id | La valeur est mappée directement à partir du champ resultType s'il n'est pas vide et ne correspond pas à "0". |
resultType | read_only_udm.security_result.summary | La valeur est mappée sur "Connexion réussie" si resultType est défini sur "0", et sur "Connexion échouée" dans le cas contraire. |
resourceDisplayName | read_only_udm.target.application | La valeur est mappée directement à partir du champ resourceDisplayName . |
resourceDisplayName | read_only_udm.target.resource.name | La valeur est mappée directement à partir du champ resourceDisplayName . |
resourceId | read_only_udm.target.resource.id | La valeur est mappée directement à partir du champ resourceId . |
resourceId | read_only_udm.target.resource.product_object_id | La valeur est mappée directement à partir du champ resourceId . |
resourceServicePrincipalId | read_only_udm.target.resource.attribute.labels.value | La valeur est mappée directement à partir du champ resourceServicePrincipalId . |
riskDetail | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ riskDetail . |
riskEventTypes | read_only_udm.additional.fields.value.string_value | La valeur est extraite du tableau riskEventTypes et mappée sur une valeur de chaîne dans le tableau additional.fields . |
riskEventTypes | read_only_udm.additional.fields.value.list_value.values.string_value | La valeur est mappée directement à partir de chaque élément du tableau riskEventTypes . |
riskEventTypes_v2 | read_only_udm.additional.fields.value.list_value.values.string_value | La valeur est mappée directement à partir de chaque élément du tableau riskEventTypes_v2 . |
riskLevelAggregated | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ riskLevelAggregated . |
riskLevelDuringSignIn | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ riskLevelDuringSignIn . |
riskState | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ riskState . |
status.additionalDetails | read_only_udm.security_result.description | La valeur est mappée directement à partir du champ status.additionalDetails . |
status.errorCode | read_only_udm.security_result.action | La valeur est mappée sur "ALLOW" si status.errorCode est "0". |
status.errorCode | read_only_udm.security_result.rule_id | La valeur est mappée directement à partir du champ status.errorCode s'il n'est pas vide. |
status.errorCode | read_only_udm.security_result.summary | La valeur est mappée sur "Connexion réussie" si status.errorCode est défini sur "0", et sur "Connexion échouée" dans le cas contraire. |
status.failureReason | read_only_udm.additional.fields.value.string_value | La valeur est mappée directement à partir du champ status.failureReason . |
targetResources.displayName | read_only_udm.target.resource.name | La valeur est mappée directement à partir du champ targetResources.displayName . |
targetResources.id | read_only_udm.target.resource.id | La valeur est mappée directement à partir du champ targetResources.id . |
targetResources.id | read_only_udm.target.resource.product_object_id | La valeur est mappée directement à partir du champ targetResources.id . |
targetResources.modifiedProperties.displayName | read_only_udm.target.resource.attribute.labels.key | La valeur est mappée directement à partir du champ targetResources.modifiedProperties.displayName . |
targetResources.modifiedProperties.newValue | read_only_udm.target.resource.attribute.labels.value | La valeur est mappée directement à partir du champ targetResources.modifiedProperties.newValue après suppression des guillemets doubles. |
targetResources.modifiedProperties.oldValue | read_only_udm.target.resource.attribute.labels.value | La valeur est mappée directement à partir du champ targetResources.modifiedProperties.oldValue . |
targetResources.type | read_only_udm.target.resource.type | La valeur est mappée directement à partir du champ targetResources.type . |
targetResources.userPrincipalName | read_only_udm.target.user.user_display_name | La valeur est mappée directement à partir du champ targetResources.userPrincipalName . |
tenantId | read_only_udm.metadata.product_deployment_id | La valeur est mappée directement à partir du champ tenantId . |
temps | read_only_udm.metadata.event_timestamp.seconds | La valeur est extraite du champ time et convertie en secondes depuis l'epoch. |
userAgent | read_only_udm.network.http.parsed_user_agent | La valeur est mappée directement à partir du champ userAgent et convertie en objet user-agent analysé. |
userAgent | read_only_udm.network.http.user_agent | La valeur est mappée directement à partir du champ userAgent . |
userDisplayName | read_only_udm.target.user.user_display_name | La valeur est mappée directement à partir du champ userDisplayName s'il est différent de userId et ne correspond pas à un format d'adresse e-mail. |
userPrincipalName | read_only_udm.principal.administrative_domain | La partie domaine de l'adresse e-mail est extraite du champ userPrincipalName à l'aide d'un modèle Grok et mappée sur le champ principal.administrative_domain . |
userPrincipalName | read_only_udm.target.user.email_addresses | La valeur est mappée directement à partir du champ userPrincipalName si elle correspond à un modèle d'adresse e-mail. |
userPrincipalName | read_only_udm.target.user.userid | La valeur est mappée directement à partir du champ userPrincipalName si elle ne correspond pas à un modèle d'adresse e-mail. |
userId | read_only_udm.target.user.product_object_id | La valeur est mappée directement à partir du champ userId . |
read_only_udm.metadata.log_type | AZURE_AD | Cette valeur est codée en dur dans l'analyseur. |
read_only_udm.metadata.vendor_name | Microsoft | Cette valeur est codée en dur dans l'analyseur. |
read_only_udm.metadata.product_name | Azure AD | Cette valeur est codée en dur dans l'analyseur. |
read_only_udm.extensions.auth.type | SSO | Cette valeur est codée en dur dans l'analyseur. |
Modifications
2024-07-05
- Mappage de "isInteractive" sur "security_result.detection_fields".
2024-04-02
- "properties.createdDateTime" a été mappé sur "metadata.event_timestamp".
- "properties.resourceServicePrincipalId" et "resourceServicePrincipalId" ont été mappés sur "target.resource.attribute.labels".
- "properties.authenticationProcessingDetails", "authenticationProcessingDetails" et "properties.networkLocationDetails" ont été mappés sur "additional.fields".
- "properties.userAgent" a été mappé sur "network.http.user_agent" et "network.http.parsed_user_agent".
- Mappage de "properties.authenticationRequirement" sur "additional.fields".
2024-06-03
- Modification de la mise en correspondance de "policies.displayName" de "about.user.user_display_name" à "security_result.rule_name".
- Modification de la mise en correspondance de "policies.id" de "about.user.userid" à "security_result.rule_id".
- Modification de la mise en correspondance de "policies.result" de "about.labels" à "security_result.detection_fields".
2024-05-29
- Lorsque "status.errorCode" est défini sur "0", définissez "security_result.action" sur "ALLOW".
2024-05-13
Correction de bug:
- Mappage de "userPrincipalName" sur "target.user.userid".
2024-05-10
- Mappage de "networkLocationDetails.n.networkNames", "properties.networkLocationDetails.n.networkNames", "networkLocationDetails.n.networkType" et "properties.networkLocationDetails.n.networkType" sur "additional.fields".
- "properties.userAgent" et "userAgent" ont été mappés sur "network.http.user_agent" et "network.http.parsed_user_agent".
2024-05-03
Correction de bug:
- Ajout d'une vérification "on_error" avant la mise en correspondance de "target.modifiedProperties.n.newValue".
- Mappage de "target.modifiedProperties.n.oldValue" et "target.modifiedProperties.n.displayName" sur "target.resource.attribute.labels".
- Mappage de "activityDisplayName" sur "security_result.summary".
2024-04-30
- Mise en correspondance de "properties.authenticationDetails", "properties.networkLocationDetails", "properties.authenticationRequirementPolicies", "networkLocationDetails" et "authenticationRequirementPolicies" avec "security_result.detection_fields".
2024-04-02
- Mappage de "properties.authenticationRequirement" sur "additional.fields".
2024-04-02
- Mappage de "authenticationRequirement" sur "additional.fields".
2024-02-26
- Mappage de "appliedConditionalAccessPolicies" sur "security_result".
- Mappage de "isInteractive" sur "extensions.auth.mechanism".
- Mappage de "location.geoCoordinates.altitude" sur "additional.fields".
2024-02-09
- Mise en correspondance de "authenticationDetails.authenticationMethod", "authenticationDetails.authenticationMethodDetail", "authenticationDetails.authenticationStepResultDetail", "authenticationDetails.authenticationStepDateTime" et "authenticationDetails.authenticationStepRequirement" avec "security_result.detection_fields".
- Mappage de "authenticationDetails.succeeded" sur "security_result.action".
- Mappage de "status.additionalDetails" sur "security_result.description".
2024-01-11
- Mappage de "correlationId" sur "security_result.detection_fields".
2023-11-20
- Mappage de "tenantId" sur "metadata.product_deployment_id".
- Mappage de "Niveau" sur "security_result.severity_details" et "security_result.severity".
- "properties.userDisplayName" a été mappé sur "target.user.user_display_name".
- "identity" a été mappé sur "target.user.user_display_name".
- Mappage de "properties.activityDateTime" sur "metadata.event_timestamp".
- Mappage de "properties.activity" sur "security_result.summary".
- Mappage de "resultSignature", "properties.riskLevel", "properties.isGuest", "properties.isDeleted", "properties.isProcessing",
- "properties.riskLastUpdatedDateTime", "properties.riskType", "properties.riskEventType", "properties.riskState", "properties.riskDetail", "properties.source", "properties.detectionTimingType"
- "properties.detectedDateTime", "properties.lastUpdatedDateTime", "properties.tokenIssuerType", "properties.homeTenantId", "properties.userType", "properties.crossTenantAccessType", "durationMs" à "additional.fields".
- "resourceId" a été mappé sur "target.resource.product_object_id".
- Mise en correspondance de "properties.location.geoCoordinates.longitude" et "location.geoCoordinates.longitude" avec "principal.location.region_coordinates.longitude".
- Mise en correspondance de "properties.location.geoCoordinates.latitude" et "location.geoCoordinates.latitude" avec "principal.location.region_coordinates.latitude".
2023-07-12
- Mise en correspondance de "deviceDetail.isCompliant", "deviceDetail.isManaged" et "deviceDetail.trustType" avec "principal.asset.attribute.labels".
- Mappage de "deviceDetail.deviceId" sur "principal.asset.asset_id".
- Mappage de "deviceDetail.browser" sur "network.http.user_agent".
- Mappage de "deviceDetail.operatingSystem" sur "principal.platform_version".
- Mappage de "status.failureReason" sur "additional.fields".
- Mappage de "status.errorCode" sur "security_result.rule_id".
- Mappage de "deviceDetail.displayName" sur "principal.asset.hardware".
2023-03-14
- Mappage de "browser" sur "principal.resource.attribute.labels".
- Mappage de "isCompliant", "isManaged" et "trustType" sur "principal.asset.attribute.labels".
- Mappage du champ "domain" de "userPrincipalName" sur "principal.administrative_domain".
2022-12-16
- Ajout d'une vérification conditionnelle pour le champ "initiatedBy.user.userPrincipalName" et mappage sur "principal.user.email_addresses".
2022-10-28
- Mappage de "additionalDetails.0.value" sur "network.http.user_agent".
- Mappage de "additionalDetails.1.value" sur "target.resource.attribute.labels".
- Mappage de "Id" sur "metadata.product_log_id".
- Mappage de "initiatedBy.user.id" sur "principal.user.userid".
- Mappage de "initiatedBy.user.displayName" sur "principal.user.user_display_name".
- Mappage de "initiatedBy.user.ipAddress" sur "principal.ip".
- Mappage de "initiatedBy.user.userPrincipalName" sur "principal.user.email_addresses".
- Mappage de "operationType" sur "security_result.action_details".
- Mappage de "target.displayName" sur "target.resource.name".
- "target.id" a été mappé sur "target.resource.id".
- "target.type" a été mappé sur "target.resource.type".
- "field.newValue" a été mappé sur "target.resource.product_object_id" si field.displayName est "AppRole.Id", sinon "field.newValue" a été mappé sur "target.resource.attribute.labels".
- Ajout de la vérification de errorCode.
- Mappage de "loggedByService" sur "target.application".
- "activityDisplayName" a été mappé sur "metadata.product_event_type".
- Mappage de "metadata.event_type" sur "USER_RESOURCE_UPDATE_PERMISSIONS", où "activityDisplayName" est "Ajouter une attribution de rôle d'application au compte principal de service".
2022-08-25
- Si "properties.initiatedBy.user.userPrincipalName" correspond à "modèle d'expression régulière d'adresse e-mail", il est mappé sur "principal.user.email_addresses", sinon sur "principal.user.userid".
- Si "properties.userPrincipalName" ou "userPrincipalName" correspond à "modèle d'expression régulière d'adresse e-mail", la valeur est mappée sur "target.user.email_addresses", sinon sur "target.user.userid".
2022-08-11
- Suppression de la balise de suppression "TAG_MALFORMED_ENCODING".
- Ajout de "event_type" "GENERIC_EVENT".
2022-05-29
- Amélioration : modification de la boucle for pour le champ "riskEventTypes_v2" mappé sur "additional.fields".
- Mappage du champ "level" sur "security_result.severity_details".
- Mappage du champ "properties.result" sur "security_result.action_details".
2022-04-20
- Correction de bug : analyse des journaux avec l'événement "appDisplayName" : "NotApplicable".
- Modification de la boucle for pour le champ "riskEventTypes".