Collecter les journaux Microsoft Azure AD

Compatible avec:

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

  1. Connectez-vous au portail Azure.
  2. Accédez à Accueil > Enregistrement d'application, sélectionnez une application enregistrée ou enregistrez-en une si vous n'en avez pas encore créé.
  3. Pour enregistrer une application, dans la section Enregistrement de l'application, cliquez sur Nouvel enregistrement.
  4. Dans le champ Nom, indiquez le nom à afficher pour votre application.
  5. 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.
  6. Cliquez sur S'inscrire.
  7. 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.
  8. Cliquez sur Autorisations des API.
  9. Cliquez sur Ajouter une autorisation, puis sélectionnez Microsoft Graph dans le nouveau volet.
  10. Cliquez sur Autorisations de l'application.
  11. 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.
  12. 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.
  13. Accédez à Paramètres > Gérer.
  14. Cliquez sur Certificats et secrets.
  15. Cliquez sur Nouvelle clé secrète client. Dans le champ Valeur, le code secret du client s'affiche.
  16. 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

  1. Sélectionnez Paramètres du SIEM > Flux.
  2. Cliquez sur Ajouter.
  3. Saisissez un nom unique pour le nom du flux.
  4. Sélectionnez API tierce comme type de source.
  5. Sélectionnez Azure AD comme Type de journal.
  6. Cliquez sur Suivant.
  7. 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.
  8. 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".