Microsoft Azure AD 로그 수집

다음에서 지원:

이 문서에서는 Google Security Operations 피드를 설정하여 Microsoft Azure Active Directory (AD) 로그를 수집하는 방법을 설명합니다.

Azure Active Directory (AZURE_AD)의 이름이 이제 Microsoft Entra ID로 변경되었습니다. Azure AD 감사 로그(AZURE_AD_AUDIT)가 이제 Microsoft Entra ID 감사 로그로 변경되었습니다.

자세한 내용은 Google Security Operations에 데이터 수집을 참조하세요.

수집 라벨은 원시 로그 데이터를 구조화된 UDM 형식으로 정규화하는 파서를 식별합니다.

시작하기 전에

이 페이지의 태스크를 완료하려면 다음이 있어야 합니다.

  • 로그인할 수 있는 Azure 구독입니다.
  • 전역 관리자 또는 Azure AD 관리자 역할
  • Azure의 Azure AD (테넌트)

Azure AD 구성

  1. Azure 포털에 로그인합니다.
  2. > 앱 등록으로 이동하여 등록된 애플리케이션을 선택하거나 아직 애플리케이션을 만들지 않은 경우 애플리케이션을 등록합니다.
  3. 애플리케이션을 등록하려면 앱 등록 섹션에서 새 등록을 클릭합니다.
  4. 이름 필드에 애플리케이션의 표시 이름을 입력합니다.
  5. 지원되는 계정 유형 섹션에서 필요한 옵션을 선택하여 애플리케이션을 사용하거나 API에 액세스할 수 있는 사용자를 지정합니다.
  6. 등록을 클릭합니다.
  7. 개요 페이지로 이동하여 Google Security Operations 피드를 구성하는 데 필요한 애플리케이션 (클라이언트) ID와 디렉터리(테넌트) ID를 복사합니다.
  8. API 권한을 클릭합니다.
  9. 권한 추가를 클릭한 다음 새 창에서 Microsoft Graph를 선택합니다.
  10. 애플리케이션 권한을 클릭합니다.
  11. AuditLog.Read.All, Directory.Read.All, SecurityEvents.Read.All 권한을 선택합니다. 권한이 위임된 권한이 아닌 애플리케이션 권한인지 확인합니다.
  12. 기본 디렉터리에 대한 관리자 동의 허용을 클릭합니다. 동의 절차의 일환으로 사용자 또는 관리자가 애플리케이션에 권한을 부여하면 애플리케이션은 API를 호출할 수 있습니다.
  13. 설정 > 관리로 이동합니다.
  14. 인증서 및 보안 비밀을 클릭합니다.
  15. '새 클라이언트 암호'를 클릭합니다. 필드에 클라이언트 보안 비밀이 표시됩니다.
  16. 클라이언트 보안 비밀번호 값을 복사합니다. 이 값은 생성 시점에만 표시되며 Azure 앱 등록 및 Google Security Operations 피드 구성에 필요합니다.

Azure AD 로그를 수집하도록 Google Security Operations에서 피드 구성

  1. SIEM 설정 > 피드를 선택합니다.
  2. 새로 추가를 클릭합니다.
  3. 피드 이름에 고유한 이름을 입력합니다.
  4. 소스 유형으로 서드 파티 API를 선택합니다.
  5. 로그 유형으로 Azure AD를 선택합니다.
  6. 다음을 클릭합니다.
  7. 다음 필수 입력 매개변수를 구성합니다.
    • OAUTH 클라이언트 ID: 이전에 가져온 클라이언트 ID를 지정합니다.
    • OAUTH 클라이언트 보안 비밀: 이전에 가져온 클라이언트 보안 비밀을 지정합니다.
    • 테넌트 ID: 이전에 가져온 테넌트 ID를 지정합니다.
  8. 다음을 클릭한 후 제출을 클릭합니다.

Google Security Operations 피드에 대한 자세한 내용은 Google Security Operations 피드 문서를 참조하세요. 각 피드 유형의 요구사항은 유형별 피드 구성을 참조하세요. 피드를 만들 때 문제가 발생하면 Google Security Operations 지원팀에 문의하세요.

필드 매핑 참조

이 파서 코드는 JSON 형식의 원시 Azure AD 로그를 통합 데이터 모델 (UDM)로 변환합니다. 먼저 불필요한 필드를 삭제하여 데이터를 정규화한 다음 사용자 세부정보, 타임스탬프, 이벤트 세부정보와 같은 관련 정보를 추출하여 일관된 표현과 분석을 위해 해당 UDM 필드에 매핑합니다.

UDM 매핑 표

로그 필드 UDM 매핑 논리
activityDateTime read_only_udm.metadata.event_timestamp.seconds 값은 activityDateTime 필드에서 추출되고 에포크 이후 초로 변환됩니다.
activityDisplayName read_only_udm.security_result.summary 값은 activityDisplayName 필드에서 직접 매핑됩니다.
additionalDetails.0.value read_only_udm.network.http.user_agent 값은 additionalDetails.0.value 필드에서 직접 매핑됩니다.
additionalDetails.1.key read_only_udm.target.resource.attribute.labels.key 값은 additionalDetails.1.key 필드에서 직접 매핑됩니다.
additionalDetails.1.value read_only_udm.target.resource.attribute.labels.value 값은 additionalDetails.1.value 필드에서 직접 매핑됩니다.
am_category read_only_udm.metadata.description 값은 am_category 필드에서 직접 매핑됩니다.
am_tenantId read_only_udm.metadata.product_deployment_id 값은 am_tenantId 필드에서 직접 매핑됩니다.
appDisplayName read_only_udm.target.application 값은 appDisplayName 필드에서 직접 매핑됩니다. appDisplayName가 비어 있으면 resourceDisplayName에서 값을 가져옵니다.
appId read_only_udm.target.resource.attribute.labels.value 값은 appId 필드에서 직접 매핑됩니다.
appliedConditionalAccessPolicies.displayName read_only_udm.about.user.user_display_name 값은 appliedConditionalAccessPolicies.displayName 필드에서 직접 매핑됩니다.
appliedConditionalAccessPolicies.enforcedGrantControls read_only_udm.security_result.rule_labels.value 값은 appliedConditionalAccessPolicies.enforcedGrantControls 필드에서 직접 매핑됩니다.
appliedConditionalAccessPolicies.enforcedSessionControls read_only_udm.security_result.rule_labels.value 값은 appliedConditionalAccessPolicies.enforcedSessionControls 필드에서 직접 매핑됩니다.
appliedConditionalAccessPolicies.id read_only_udm.about.user.userid 값은 appliedConditionalAccessPolicies.id 필드에서 직접 매핑됩니다.
appliedConditionalAccessPolicies.result read_only_udm.about.labels.value 값은 appliedConditionalAccessPolicies.result 필드에서 직접 매핑됩니다.
authenticationDetails.authenticationMethod read_only_udm.security_result.detection_fields.value 값은 authenticationDetails.authenticationMethod 필드에서 직접 매핑됩니다.
authenticationDetails.authenticationMethodDetail read_only_udm.security_result.detection_fields.value 값은 authenticationDetails.authenticationMethodDetail 필드에서 직접 매핑됩니다.
authenticationDetails.authenticationStepDateTime read_only_udm.security_result.detection_fields.value 값은 authenticationDetails.authenticationStepDateTime 필드에서 직접 매핑됩니다.
authenticationDetails.authenticationStepRequirement read_only_udm.security_result.detection_fields.value 값은 authenticationDetails.authenticationStepRequirement 필드에서 직접 매핑됩니다.
authenticationDetails.authenticationStepResultDetail read_only_udm.security_result.detection_fields.value 값은 authenticationDetails.authenticationStepResultDetail 필드에서 직접 매핑됩니다.
authenticationProcessingDetails.key read_only_udm.additional.fields.key 이 값은 authenticationProcessingDetails.key 필드에서 직접 매핑되며 접두사는 'authenticationProcessingDetails - '입니다.
authenticationProcessingDetails.value read_only_udm.additional.fields.value.string_value 값은 authenticationProcessingDetails.value 필드에서 직접 매핑됩니다.
callerIpAddress read_only_udm.principal.ip 값은 callerIpAddress 필드에서 직접 매핑됩니다.
callerIpAddress read_only_udm.principal.asset.ip 값은 callerIpAddress 필드에서 직접 매핑됩니다.
카테고리 read_only_udm.metadata.description 값은 category 필드에서 직접 매핑됩니다.
clientAppUsed read_only_udm.principal.application 값은 clientAppUsed 필드에서 직접 매핑됩니다.
conditionalAccessStatus read_only_udm.additional.fields.value.string_value 값은 conditionalAccessStatus 필드에서 직접 매핑됩니다.
correlationId read_only_udm.network.session_id 값은 correlationId 필드에서 직접 매핑됩니다.
correlationId read_only_udm.security_result.detection_fields.value 값은 correlationId 필드에서 직접 매핑됩니다.
createdDateTime read_only_udm.metadata.event_timestamp.seconds 값은 createdDateTime 필드에서 추출되고 에포크 이후의 초로 변환됩니다.
deviceDetail.browser read_only_udm.network.http.user_agent 값은 deviceDetail.browser 필드에서 직접 매핑됩니다.
deviceDetail.deviceId read_only_udm.principal.asset.asset_id 값은 deviceDetail.deviceId 필드에서 직접 매핑되며 접두사로 '기기 ID:'가 추가됩니다.
deviceDetail.deviceId read_only_udm.principal.asset_id 값은 deviceDetail.deviceId 필드에서 직접 매핑되며 접두사로 '기기 ID:'가 추가됩니다.
deviceDetail.displayName read_only_udm.principal.asset.hostname 값은 deviceDetail.displayName 필드에서 직접 매핑됩니다.
deviceDetail.isCompliant read_only_udm.principal.asset.attribute.labels.value 값은 deviceDetail.isCompliant 필드에서 직접 매핑됩니다.
deviceDetail.isManaged read_only_udm.principal.asset.attribute.labels.value 값은 deviceDetail.isManaged 필드에서 직접 매핑됩니다.
deviceDetail.operatingSystem read_only_udm.principal.platform_version 값은 deviceDetail.operatingSystem 필드에서 직접 매핑됩니다.
deviceDetail.trustType read_only_udm.principal.asset.attribute.labels.value 값은 deviceDetail.trustType 필드에서 직접 매핑됩니다.
durationMs read_only_udm.additional.fields.value.string_value 값은 durationMs 필드에서 직접 매핑됩니다.
errorCode read_only_udm.security_result.rule_id 값은 errorCode 필드에서 직접 매핑됩니다.
ID read_only_udm.target.user.user_display_name 값이 userId과 다르고 이메일 주소 패턴과 일치하지 않으면 identity 필드에서 직접 매핑됩니다.
initiatedBy.user.displayName read_only_udm.principal.user.user_display_name 값은 initiatedBy.user.displayName 필드에서 직접 매핑됩니다.
initiatedBy.user.id read_only_udm.principal.user.userid 값은 initiatedBy.user.id 필드에서 직접 매핑됩니다.
initiatedBy.user.ipAddress read_only_udm.principal.ip 값은 initiatedBy.user.ipAddress 필드에서 직접 매핑됩니다.
initiatedBy.user.ipAddress read_only_udm.principal.asset.ip 값은 initiatedBy.user.ipAddress 필드에서 직접 매핑됩니다.
initiatedBy.user.userPrincipalName read_only_udm.principal.user.email_addresses 값이 이메일 주소 패턴과 일치하는 경우 initiatedBy.user.userPrincipalName 필드에서 직접 매핑됩니다.
ipAddress read_only_udm.principal.ip 값은 grok 패턴을 사용하여 ipAddress 필드에서 추출하여 IP 주소를 추출합니다.
ipAddress read_only_udm.principal.asset.ip 값은 grok 패턴을 사용하여 ipAddress 필드에서 추출하여 IP 주소를 추출합니다.
isInteractive read_only_udm.extensions.auth.mechanism 값은 isInteractive가 'true'이면 'INTERACTIVE'에 매핑되고 그 밖의 경우에는 'MECHANISM_OTHER'에 매핑됩니다.
isInteractive read_only_udm.security_result.detection_fields.value 값은 isInteractive 필드에서 직접 매핑됩니다.
레벨 read_only_udm.security_result.severity 값은 다음 로직에 따라 level 필드에서 매핑됩니다. * 'Information', 'Informational', '0', '4'는 'INFORMATIONAL'로 매핑됩니다. * '경고', '1', '3'은 'MEDIUM'에 매핑됩니다. * '오류', '2'는 'ERROR'에 매핑됩니다. * 'Critical', 'CRITICAL', 'critical'은 'CRITICAL'에 매핑됩니다.
레벨 read_only_udm.security_result.severity_details 값은 level 필드에서 직접 매핑됩니다.
location.city read_only_udm.principal.location.city 값은 location.city 필드에서 직접 매핑됩니다.
location.countryOrRegion read_only_udm.principal.location.country_or_region 값은 location.countryOrRegion 필드에서 직접 매핑됩니다.
location.geoCoordinates.latitude read_only_udm.principal.location.region_coordinates.latitude 값은 location.geoCoordinates.latitude 필드에서 직접 매핑되고 부동 소수점 수로 변환됩니다.
location.geoCoordinates.latitude read_only_udm.principal.location.region_latitude 값은 location.geoCoordinates.latitude 필드에서 직접 매핑되고 부동 소수점 수로 변환됩니다.
location.geoCoordinates.longitude read_only_udm.principal.location.region_coordinates.longitude 값은 location.geoCoordinates.longitude 필드에서 직접 매핑되고 부동 소수점 수로 변환됩니다.
location.geoCoordinates.longitude read_only_udm.principal.location.region_longitude 값은 location.geoCoordinates.longitude 필드에서 직접 매핑되고 부동 소수점 수로 변환됩니다.
location.state read_only_udm.principal.location.state 값은 location.state 필드에서 직접 매핑됩니다.
networkLocationDetails.networkNames read_only_udm.additional.fields.value.string_value 이 값은 networkLocationDetails.networkNames 배열의 모든 값을 쉼표로 구분하여 연결하여 생성됩니다.
networkLocationDetails.networkType read_only_udm.additional.fields.value.string_value 값은 networkLocationDetails.networkType 필드에서 직접 매핑됩니다.
networkLocationDetails.networkType read_only_udm.security_result.detection_fields.value 값은 networkLocationDetails.networkType 필드에서 직접 매핑됩니다.
operationName read_only_udm.metadata.event_type operationName이 '로그인 활동'인 경우 값은 'USER_LOGIN'에 매핑되고, operationName이 '그룹에 구성원 추가'인 경우 'USER_CHANGE_PERMISSIONS'에 매핑되고, operationName이 '서비스 주 구성원에 앱 역할 할당 추가'인 경우 'USER_RESOURCE_UPDATE_PERMISSIONS'에 매핑됩니다. 그 외의 경우에는 다른 필드의 존재 여부에 따라 값이 결정됩니다. * has_target_user가 'true'인 경우 'USER_LOGIN' * has_principal_user가 'true'인 경우 'USER_UNCATEGORIZED' * has_principal이 'true'인 경우 'STATUS_UPDATE' * 그 외의 경우 'GENERIC_EVENT'입니다.
operationType read_only_udm.security_result.action_details 값은 operationType 필드에서 직접 매핑됩니다.
properties.activity read_only_udm.security_result.summary 값은 properties.activity 필드에서 직접 매핑됩니다.
properties.activityDateTime read_only_udm.metadata.event_timestamp.seconds 값은 properties.activityDateTime 필드에서 추출되고 에포크 이후 초로 변환됩니다.
properties.additionalInfo read_only_udm.network.http.user_agent 값은 JSON 문자열을 파싱하고 'userAgent' 키에 해당하는 값을 추출하여 properties.additionalInfo 필드에서 추출됩니다.
properties.additionalInfo read_only_udm.target.url 값은 JSON 문자열을 파싱하고 'alertUrl' 키에 해당하는 값을 추출하여 properties.additionalInfo 필드에서 추출됩니다.
properties.appId read_only_udm.target.resource.attribute.labels.value 값은 properties.appId 필드에서 직접 매핑됩니다.
properties.appDisplayName read_only_udm.target.application 값은 properties.appDisplayName 필드에서 직접 매핑됩니다.
properties.appliedConditionalAccessPolicies.displayName read_only_udm.security_result.rule_name 값은 properties.appliedConditionalAccessPolicies.displayName 필드에서 직접 매핑됩니다.
properties.appliedConditionalAccessPolicies.id read_only_udm.security_result.rule_id 값은 properties.appliedConditionalAccessPolicies.id 필드에서 직접 매핑됩니다.
properties.appliedConditionalAccessPolicies.result read_only_udm.security_result.detection_fields.value 값은 properties.appliedConditionalAccessPolicies.result 필드에서 직접 매핑됩니다.
properties.authenticationDetails.authenticationMethod read_only_udm.security_result.detection_fields.value 값은 properties.authenticationDetails.authenticationMethod 필드에서 직접 매핑됩니다.
properties.authenticationDetails.authenticationMethodDetail read_only_udm.security_result.detection_fields.value 값은 properties.authenticationDetails.authenticationMethodDetail 필드에서 직접 매핑됩니다.
properties.authenticationDetails.authenticationStepDateTime read_only_udm.security_result.detection_fields.value 값은 properties.authenticationDetails.authenticationStepDateTime 필드에서 직접 매핑됩니다.
properties.authenticationDetails.authenticationStepRequirement read_only_udm.security_result.detection_fields.value 값은 properties.authenticationDetails.authenticationStepRequirement 필드에서 직접 매핑됩니다.
properties.authenticationDetails.authenticationStepResultDetail read_only_udm.security_result.detection_fields.value 값은 properties.authenticationDetails.authenticationStepResultDetail 필드에서 직접 매핑됩니다.
properties.authenticationProcessingDetails.key read_only_udm.additional.fields.key 값은 properties.authenticationProcessingDetails.key 필드에서 직접 매핑되며 'properties authenticationProcessingDetails - '가 접두사로 추가됩니다.
properties.authenticationProcessingDetails.value read_only_udm.additional.fields.value.string_value 값은 properties.authenticationProcessingDetails.value 필드에서 직접 매핑됩니다.
properties.authenticationRequirement read_only_udm.additional.fields.value.string_value 값은 properties.authenticationRequirement 필드에서 직접 매핑됩니다.
properties.authenticationRequirementPolicies.detail read_only_udm.security_result.detection_fields.value 값은 properties.authenticationRequirementPolicies.detail 필드에서 직접 매핑됩니다.
properties.authenticationRequirementPolicies.requirementProvider read_only_udm.security_result.detection_fields.value 값은 properties.authenticationRequirementPolicies.requirementProvider 필드에서 직접 매핑됩니다.
properties.clientAppUsed read_only_udm.principal.application 값은 properties.clientAppUsed 필드에서 직접 매핑됩니다.
properties.conditionalAccessStatus read_only_udm.additional.fields.value.string_value 값은 properties.conditionalAccessStatus 필드에서 직접 매핑됩니다.
properties.createdDateTime read_only_udm.metadata.event_timestamp.seconds 값은 properties.createdDateTime 필드에서 추출되고 에포크 이후 초로 변환됩니다.
properties.crossTenantAccessType read_only_udm.additional.fields.value.string_value 값은 properties.crossTenantAccessType 필드에서 직접 매핑됩니다.
properties.detectedDateTime read_only_udm.additional.fields.value.string_value 값은 properties.detectedDateTime 필드에서 직접 매핑됩니다.
properties.detectionTimingType read_only_udm.additional.fields.value.string_value 값은 properties.detectionTimingType 필드에서 직접 매핑됩니다.
properties.homeTenantId read_only_udm.additional.fields.value.string_value 값은 properties.homeTenantId 필드에서 직접 매핑됩니다.
properties.id read_only_udm.metadata.product_log_id 값은 properties.id 필드에서 직접 매핑됩니다.
properties.initiatedBy.user.displayName read_only_udm.principal.user.user_display_name 값은 properties.initiatedBy.user.displayName 필드에서 직접 매핑됩니다.
properties.initiatedBy.user.id read_only_udm.principal.user.windows_sid 값은 properties.initiatedBy.user.id 필드에서 직접 매핑됩니다.
properties.initiatedBy.user.ipAddress read_only_udm.principal.ip 값은 properties.initiatedBy.user.ipAddress 필드에서 직접 매핑됩니다.
properties.initiatedBy.user.ipAddress read_only_udm.principal.asset.ip 값은 properties.initiatedBy.user.ipAddress 필드에서 직접 매핑됩니다.
properties.initiatedBy.user.userPrincipalName read_only_udm.principal.user.userid 값이 이메일 주소 패턴과 일치하지 않으면 properties.initiatedBy.user.userPrincipalName 필드에서 직접 매핑됩니다.
properties.initiatedBy.user.userPrincipalName read_only_udm.principal.user.email_addresses 값이 이메일 주소 패턴과 일치하는 경우 properties.initiatedBy.user.userPrincipalName 필드에서 직접 매핑됩니다.
properties.ipAddress read_only_udm.principal.ip 값은 grok 패턴을 사용하여 properties.ipAddress 필드에서 추출하여 IP 주소를 추출합니다.
properties.ipAddress read_only_udm.principal.asset.ip 값은 grok 패턴을 사용하여 properties.ipAddress 필드에서 추출하여 IP 주소를 추출합니다.
properties.isGuest read_only_udm.additional.fields.value.string_value 값은 properties.isGuest 필드에서 직접 매핑됩니다.
properties.isDeleted read_only_udm.additional.fields.value.string_value 값은 properties.isDeleted 필드에서 직접 매핑됩니다.
properties.isProcessing read_only_udm.additional.fields.value.string_value 값은 properties.isProcessing 필드에서 직접 매핑됩니다.
properties.lastUpdatedDateTime read_only_udm.additional.fields.value.string_value 값은 properties.lastUpdatedDateTime 필드에서 직접 매핑됩니다.
properties.location.city read_only_udm.principal.location.city 값은 properties.location.city 필드에서 직접 매핑됩니다.
properties.location.countryOrRegion read_only_udm.principal.location.country_or_region 값은 properties.location.countryOrRegion 필드에서 직접 매핑됩니다.
properties.location.geoCoordinates.latitude read_only_udm.principal.location.region_coordinates.latitude 값은 properties.location.geoCoordinates.latitude 필드에서 직접 매핑되고 부동 소수점 수로 변환됩니다.
properties.location.geoCoordinates.latitude read_only_udm.principal.location.region_latitude 값은 properties.location.geoCoordinates.latitude 필드에서 직접 매핑되고 부동 소수점 수로 변환됩니다.
properties.location.geoCoordinates.longitude read_only_udm.principal.location.region_coordinates.longitude 값은 properties.location.geoCoordinates.longitude 필드에서 직접 매핑되고 부동 소수점 수로 변환됩니다.
properties.location.geoCoordinates.longitude read_only_udm.principal.location.region_longitude 값은 properties.location.geoCoordinates.longitude 필드에서 직접 매핑되고 부동 소수점 수로 변환됩니다.
properties.location.state read_only_udm.principal.location.state 값은 properties.location.state 필드에서 직접 매핑됩니다.
properties.networkLocationDetails.networkNames read_only_udm.additional.fields.value.string_value 이 값은 properties.networkLocationDetails.networkNames 배열의 모든 값을 쉼표로 구분하여 연결하여 생성됩니다.
properties.networkLocationDetails.networkType read_only_udm.additional.fields.value.string_value 값은 properties.networkLocationDetails.networkType 필드에서 직접 매핑됩니다.
properties.networkLocationDetails.networkType read_only_udm.security_result.detection_fields.value 값은 properties.networkLocationDetails.networkType 필드에서 직접 매핑됩니다.
properties.resourceServicePrincipalId read_only_udm.target.resource.attribute.labels.value 값은 properties.resourceServicePrincipalId 필드에서 직접 매핑됩니다.
properties.riskDetail read_only_udm.additional.fields.value.string_value 값은 properties.riskDetail 필드에서 직접 매핑됩니다.
properties.riskEventType read_only_udm.additional.fields.value.string_value 값은 properties.riskEventType 필드에서 직접 매핑됩니다.
properties.riskLastUpdatedDateTime read_only_udm.additional.fields.value.string_value 값은 properties.riskLastUpdatedDateTime 필드에서 직접 매핑됩니다.
properties.riskLevel read_only_udm.additional.fields.value.string_value 값은 properties.riskLevel 필드에서 직접 매핑됩니다.
properties.riskLevelDuringSignIn read_only_udm.additional.fields.value.string_value 값은 properties.riskLevelDuringSignIn 필드에서 직접 매핑됩니다.
properties.riskState read_only_udm.additional.fields.value.string_value 값은 properties.riskState 필드에서 직접 매핑됩니다.
properties.riskType read_only_udm.additional.fields.value.string_value 값은 properties.riskType 필드에서 직접 매핑됩니다.
properties.source read_only_udm.additional.fields.value.string_value 값은 properties.source 필드에서 직접 매핑됩니다.
properties.targetResources.0.id read_only_udm.target.user.product_object_id 값은 properties.targetResources.0.id 필드에서 직접 매핑됩니다.
properties.targetResources.modifiedProperties.0.newValue read_only_udm.target.group.product_object_id 값은 properties.targetResources.modifiedProperties.0.newValue 필드에서 직접 매핑됩니다.
properties.tokenIssuerType read_only_udm.additional.fields.value.string_value 값은 properties.tokenIssuerType 필드에서 직접 매핑됩니다.
properties.userAgent read_only_udm.network.http.parsed_user_agent 값은 properties.userAgent 필드에서 직접 매핑되고 파싱된 사용자 에이전트 객체로 변환됩니다.
properties.userAgent read_only_udm.network.http.user_agent 값은 properties.userAgent 필드에서 직접 매핑됩니다.
properties.userId read_only_udm.target.user.product_object_id 값은 properties.userId 필드에서 직접 매핑됩니다.
properties.userPrincipalName read_only_udm.target.user.userid 값이 이메일 주소 패턴과 일치하지 않으면 properties.userPrincipalName 필드에서 직접 매핑됩니다.
properties.userPrincipalName read_only_udm.target.user.email_addresses 값이 이메일 주소 패턴과 일치하는 경우 properties.userPrincipalName 필드에서 직접 매핑됩니다.
결과 read_only_udm.security_result.action result이 '성공'인 경우 값은 '허용'에 매핑됩니다.
결과 read_only_udm.security_result.action_details result가 '성공'인 경우 값은 result 필드에서 직접 매핑됩니다.
resultDescription read_only_udm.security_result.description 값은 resultDescription 필드에서 직접 매핑됩니다.
resultSignature read_only_udm.additional.fields.value.string_value 값은 resultSignature 필드에서 직접 매핑됩니다.
resultType read_only_udm.security_result.action resultType이 '0'이면 값이 '허용'에 매핑됩니다.
resultType read_only_udm.security_result.rule_id 값이 비어 있지 않고 '0'이 아닌 경우 resultType 필드에서 직접 매핑됩니다.
resultType read_only_udm.security_result.summary resultType이 '0'이면 값이 '로그인 성공'에 매핑되고, 그렇지 않으면 '로그인 실패'에 매핑됩니다.
resourceDisplayName read_only_udm.target.application 값은 resourceDisplayName 필드에서 직접 매핑됩니다.
resourceDisplayName read_only_udm.target.resource.name 값은 resourceDisplayName 필드에서 직접 매핑됩니다.
resourceId read_only_udm.target.resource.id 값은 resourceId 필드에서 직접 매핑됩니다.
resourceId read_only_udm.target.resource.product_object_id 값은 resourceId 필드에서 직접 매핑됩니다.
resourceServicePrincipalId read_only_udm.target.resource.attribute.labels.value 값은 resourceServicePrincipalId 필드에서 직접 매핑됩니다.
riskDetail read_only_udm.additional.fields.value.string_value 값은 riskDetail 필드에서 직접 매핑됩니다.
riskEventTypes read_only_udm.additional.fields.value.string_value 값은 riskEventTypes 배열에서 추출되고 additional.fields 배열의 문자열 값에 매핑됩니다.
riskEventTypes read_only_udm.additional.fields.value.list_value.values.string_value 값은 riskEventTypes 배열의 각 요소에서 직접 매핑됩니다.
riskEventTypes_v2 read_only_udm.additional.fields.value.list_value.values.string_value 값은 riskEventTypes_v2 배열의 각 요소에서 직접 매핑됩니다.
riskLevelAggregated read_only_udm.additional.fields.value.string_value 값은 riskLevelAggregated 필드에서 직접 매핑됩니다.
riskLevelDuringSignIn read_only_udm.additional.fields.value.string_value 값은 riskLevelDuringSignIn 필드에서 직접 매핑됩니다.
riskState read_only_udm.additional.fields.value.string_value 값은 riskState 필드에서 직접 매핑됩니다.
status.additionalDetails read_only_udm.security_result.description 값은 status.additionalDetails 필드에서 직접 매핑됩니다.
status.errorCode read_only_udm.security_result.action status.errorCode이 '0'이면 값이 '허용'에 매핑됩니다.
status.errorCode read_only_udm.security_result.rule_id 값이 비어 있지 않으면 status.errorCode 필드에서 직접 매핑됩니다.
status.errorCode read_only_udm.security_result.summary status.errorCode이 '0'이면 값이 '로그인 성공'에 매핑되고, 그렇지 않으면 '로그인 실패'에 매핑됩니다.
status.failureReason read_only_udm.additional.fields.value.string_value 값은 status.failureReason 필드에서 직접 매핑됩니다.
targetResources.displayName read_only_udm.target.resource.name 값은 targetResources.displayName 필드에서 직접 매핑됩니다.
targetResources.id read_only_udm.target.resource.id 값은 targetResources.id 필드에서 직접 매핑됩니다.
targetResources.id read_only_udm.target.resource.product_object_id 값은 targetResources.id 필드에서 직접 매핑됩니다.
targetResources.modifiedProperties.displayName read_only_udm.target.resource.attribute.labels.key 값은 targetResources.modifiedProperties.displayName 필드에서 직접 매핑됩니다.
targetResources.modifiedProperties.newValue read_only_udm.target.resource.attribute.labels.value 이 값은 따옴표를 삭제한 후 targetResources.modifiedProperties.newValue 필드에서 직접 매핑됩니다.
targetResources.modifiedProperties.oldValue read_only_udm.target.resource.attribute.labels.value 값은 targetResources.modifiedProperties.oldValue 필드에서 직접 매핑됩니다.
targetResources.type read_only_udm.target.resource.type 값은 targetResources.type 필드에서 직접 매핑됩니다.
targetResources.userPrincipalName read_only_udm.target.user.user_display_name 값은 targetResources.userPrincipalName 필드에서 직접 매핑됩니다.
tenantId read_only_udm.metadata.product_deployment_id 값은 tenantId 필드에서 직접 매핑됩니다.
시간 read_only_udm.metadata.event_timestamp.seconds 값은 time 필드에서 추출되고 에포크 이후의 초로 변환됩니다.
userAgent read_only_udm.network.http.parsed_user_agent 값은 userAgent 필드에서 직접 매핑되고 파싱된 사용자 에이전트 객체로 변환됩니다.
userAgent read_only_udm.network.http.user_agent 값은 userAgent 필드에서 직접 매핑됩니다.
userDisplayName read_only_udm.target.user.user_display_name 값이 userId과 다르고 이메일 주소 패턴과 일치하지 않는 경우 userDisplayName 필드에서 직접 매핑됩니다.
userPrincipalName read_only_udm.principal.administrative_domain 이메일 주소의 도메인 부분은 grok 패턴을 사용하여 userPrincipalName 필드에서 추출되고 principal.administrative_domain 필드에 매핑됩니다.
userPrincipalName read_only_udm.target.user.email_addresses 값이 이메일 주소 패턴과 일치하는 경우 userPrincipalName 필드에서 직접 매핑됩니다.
userPrincipalName read_only_udm.target.user.userid 값이 이메일 주소 패턴과 일치하지 않으면 userPrincipalName 필드에서 직접 매핑됩니다.
userId read_only_udm.target.user.product_object_id 값은 userId 필드에서 직접 매핑됩니다.
read_only_udm.metadata.log_type AZURE_AD 이 값은 파서에 하드코딩되어 있습니다.
read_only_udm.metadata.vendor_name Microsoft 이 값은 파서에 하드코딩되어 있습니다.
read_only_udm.metadata.product_name Azure AD 이 값은 파서에 하드코딩되어 있습니다.
read_only_udm.extensions.auth.type SSO 이 값은 파서에 하드코딩됩니다.

변경사항

2024-07-05

  • 'isInteractive'가 'security_result.detection_fields'에 매핑되었습니다.

2024-04-02

  • 'properties.createdDateTime'이 'metadata.event_timestamp'에 매핑되었습니다.
  • 'properties.resourceServicePrincipalId' 및 'resourceServicePrincipalId'가 'target.resource.attribute.labels'에 매핑되었습니다.
  • 'properties.authenticationProcessingDetails', 'authenticationProcessingDetails', 'properties.networkLocationDetails'가 'additional.fields'에 매핑되었습니다.
  • 'properties.userAgent'가 'network.http.user_agent' 및 'network.http.parsed_user_agent'에 매핑되었습니다.
  • 'properties.authenticationRequirement'가 'additional.fields'에 매핑되었습니다.

2024-06-03

  • 'policies.displayName'의 매핑이 'about.user.user_display_name'에서 'security_result.rule_name'으로 변경되었습니다.
  • 'policies.id'의 매핑이 'about.user.userid'에서 'security_result.rule_id'로 변경되었습니다.
  • 'policies.result'의 매핑을 'about.labels'에서 'security_result.detection_fields'로 변경했습니다.

2024-05-29

  • 'status.errorCode'가 '0'인 경우 'security_result.action'을 'ALLOW'로 설정합니다.

2024-05-13

버그 수정:

  • 'userPrincipalName'이 'target.user.userid'에 매핑되었습니다.

2024-05-10

  • 'networkLocationDetails.n.networkNames', 'properties.networkLocationDetails.n.networkNames', 'networkLocationDetails.n.networkType', 'properties.networkLocationDetails.n.networkType'이 'additional.fields'에 매핑되었습니다.
  • 'properties.userAgent' 및 'userAgent'가 'network.http.user_agent' 및 'network.http.parsed_user_agent'에 매핑되었습니다.

2024-05-03

버그 수정:

  • 'target.modifiedProperties.n.newValue'를 매핑하기 전에 'on_error' 검사를 추가했습니다.
  • 'target.modifiedProperties.n.oldValue' 및 'target.modifiedProperties.n.displayName'이 'target.resource.attribute.labels'에 매핑되었습니다.
  • 'activityDisplayName'이 'security_result.summary'에 매핑되었습니다.

2024-04-30

  • 'properties.authenticationDetails', 'properties.networkLocationDetails', 'properties.authenticationRequirementPolicies', 'networkLocationDetails', 'authenticationRequirementPolicies'가 'security_result.detection_fields'에 매핑되었습니다.

2024-04-02

  • 'properties.authenticationRequirement'가 'additional.fields'에 매핑되었습니다.

2024-04-02

  • 'authenticationRequirement'가 'additional.fields'에 매핑되었습니다.

2024-02-26

  • 'appliedConditionalAccessPolicies'가 'security_result'에 매핑되었습니다.
  • 'isInteractive'가 'extensions.auth.mechanism'에 매핑되었습니다.
  • 'location.geoCoordinates.altitude'가 'additional.fields'에 매핑되었습니다.

2024-02-09

  • 'authenticationDetails.authenticationMethod', 'authenticationDetails.authenticationMethodDetail', 'authenticationDetails.authenticationStepResultDetail', 'authenticationDetails.authenticationStepDateTime', 'authenticationDetails.authenticationStepRequirement'가 'security_result.detection_fields'에 매핑되었습니다.
  • 'authenticationDetails.succeeded'가 'security_result.action'에 매핑되었습니다.
  • 'status.additionalDetails'가 'security_result.description'에 매핑되었습니다.

2024-01-11

  • 'correlationId'가 'security_result.detection_fields'에 매핑되었습니다.

2023-11-20

  • 'tenantId'가 'metadata.product_deployment_id'에 매핑되었습니다.
  • 'Level'이 'security_result.severity_details' 및 'security_result.severity'에 매핑되었습니다.
  • 'properties.userDisplayName'이 'target.user.user_display_name'에 매핑되었습니다.
  • 'identity'가 'target.user.user_display_name'에 매핑되었습니다.
  • 'properties.activityDateTime'이 'metadata.event_timestamp'에 매핑되었습니다.
  • 'properties.activity'가 'security_result.summary'에 매핑되었습니다.
  • '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'가 'target.resource.product_object_id'에 매핑되었습니다.
  • 'properties.location.geoCoordinates.longitude' 및 'location.geoCoordinates.longitude'가 'principal.location.region_coordinates.longitude'에 매핑되었습니다.
  • 'properties.location.geoCoordinates.latitude' 및 'location.geoCoordinates.latitude'가 'principal.location.region_coordinates.latitude'에 매핑되었습니다.

2023-07-12

  • 'deviceDetail.isCompliant', 'deviceDetail.isManaged', 'deviceDetail.trustType'이 'principal.asset.attribute.labels'에 매핑되었습니다.
  • 'deviceDetail.deviceId'가 'principal.asset.asset_id'에 매핑되었습니다.
  • 'deviceDetail.browser'가 'network.http.user_agent'에 매핑되었습니다.
  • 'deviceDetail.operatingSystem'이 'principal.platform_version'에 매핑되었습니다.
  • 'status.failureReason'이 'additional.fields'에 매핑되었습니다.
  • 'status.errorCode'가 'security_result.rule_id'에 매핑되었습니다.
  • 'deviceDetail.displayName'이 'principal.asset.hardware'에 매핑되었습니다.

2023-03-14

  • 'browser'가 'principal.resource.attribute.labels'에 매핑되었습니다.
  • 'isCompliant', 'isManaged', 'trustType'이 'principal.asset.attribute.labels'에 매핑되었습니다.
  • 'userPrincipalName'의 'domain'이 'principal.administrative_domain'에 매핑되었습니다.

2022-12-16

  • 'initiatedBy.user.userPrincipalName' 필드에 조건부 검사를 추가하고 'principal.user.email_addresses'에 매핑했습니다.

2022-10-28

  • 'additionalDetails.0.value'가 'network.http.user_agent'에 매핑되었습니다.
  • 'additionalDetails.1.value'가 'target.resource.attribute.labels'에 매핑되었습니다.
  • 'Id'가 'metadata.product_log_id'에 매핑되었습니다.
  • 'initiatedBy.user.id'가 'principal.user.userid'에 매핑되었습니다.
  • 'initiatedBy.user.displayName'이 'principal.user.user_display_name'에 매핑되었습니다.
  • 'initiatedBy.user.ipAddress'가 'principal.ip'에 매핑되었습니다.
  • 'initiatedBy.user.userPrincipalName'이 'principal.user.email_addresses'에 매핑되었습니다.
  • 'operationType'이 'security_result.action_details'에 매핑되었습니다.
  • 'target.displayName'이 'target.resource.name'에 매핑되었습니다.
  • 'target.id'가 'target.resource.id'에 매핑되었습니다.
  • 'target.type'이 'target.resource.type'에 매핑되었습니다.
  • field.displayName이 'AppRole.Id'인 경우 'field.newValue'가 'target.resource.product_object_id'에 매핑되고, 그렇지 않은 경우에는 'field.newValue'가 'target.resource.attribute.labels'에 매핑되었습니다.
  • errorCode 검사를 추가했습니다.
  • 'loggedByService'가 'target.application'에 매핑되었습니다.
  • 'activityDisplayName'이 'metadata.product_event_type'에 매핑되었습니다.
  • 'metadata.event_type'을 'USER_RESOURCE_UPDATE_PERMISSIONS'에 매핑했습니다. 여기서 'activityDisplayName'은 '서비스 주 구성원에 앱 역할 할당 추가'입니다.

2022-08-25

  • 'properties.initiatedBy.user.userPrincipalName'이 '이메일 정규식 패턴'과 일치하면 'principal.user.email_addresses'에 매핑되고 그 밖의 경우에는 'principal.user.userid'에 매핑됩니다.
  • 'properties.userPrincipalName' 또는 'userPrincipalName'이 'email regex pattern'과 일치하면 'target.user.email_addresses'에 매핑되고 그 밖의 경우에는 'target.user.userid'에 매핑됩니다.

2022-08-11

  • 'TAG_MALFORMED_ENCODING' 태그를 삭제했습니다.
  • 'event_type' 'GENERIC_EVENT'를 추가했습니다.

2022-05-29

  • 개선사항 - 'additional.fields'에 매핑된 'riskEventTypes_v2' 필드의 for 루프가 수정되었습니다.
  • 'level' 필드가 'security_result.severity_details'에 매핑되었습니다.
  • 'properties.result' 필드가 'security_result.action_details'에 매핑되었습니다.

2022-04-20

  • 버그 수정 - 이벤트 'appDisplayName': 'NotApplicable'로 로그를 파싱했습니다.
  • 'riskEventTypes' 필드의 for 루프를 수정했습니다.