Okta 로그 수집
이 문서에서는 Okta API를 사용하여 Okta 로그를 Google Security Operations로 수집하는 방법을 설명합니다. 파서는 시스템 로그를 추출하여 JSON 배열 내에서 단일 이벤트와 일괄 처리된 이벤트를 모두 처리합니다. 데이터를 UDM 형식으로 정규화하고, Okta 필드를 UDM 상응 항목에 매핑하고, 파싱된 사용자 에이전트, 지리적 정보, 인증 세부정보로 데이터를 보강하고, 결과 및 위험 정보를 기반으로 보안 결과 이벤트를 생성합니다.
시작하기 전에
- Google SecOps 인스턴스
- Okta에 대한 액세스 권한 관리
Okta 구성 방법
Okta SSO를 구성하려면 다음 작업을 완료하세요.
읽기 전용 권한이 있는 Okta 관리 사용자 만들기
- Okta 관리자 콘솔에 로그인합니다.
표준 사용자 만들기
- 디렉터리> 사용자로 이동합니다.
- 사용자 추가를 클릭하고 필수 입력란을 작성합니다.
보안 > 관리자를 선택합니다.
관리자 추가를 클릭합니다.
관리자의 관리자 할당 필드에서 일반 사용자를 찾습니다.
역할 섹션의 목록에서 읽기 전용 관리자를 선택합니다.
관리자 계정에서 로그아웃합니다.
API 키 가져오기
- 읽기 전용 관리자 사용자로 Okta 관리자 콘솔에 로그인합니다.
- 보안 > API > 토큰으로 이동합니다.
- 토큰 만들기를 클릭합니다.
- 토큰에 의미 있는 이름을 지정합니다.
- API가 사용될 IP 영역을 제공합니다 (잘 모르는 경우 모든 IP를 선택해도 됨).
- 토큰 만들기를 클릭합니다.
- API 키를 복사합니다.
- 확인을 클릭합니다.
피드 설정
Google SecOps 플랫폼에서 피드를 설정하는 방법은 두 가지입니다.
- SIEM 설정 > 피드 > 새 피드 추가
- 콘텐츠 허브 > 콘텐츠 팩 > 시작하기
Okta 피드를 설정하는 방법
이 로그 유형을 구성하려면 다음 단계를 따르세요.
- Okta 팩을 클릭합니다.
- Okta logtype을 찾습니다.
다음 필드의 값을 지정합니다.
- 소스 유형: 서드 파티 API (권장)
- 인증 HTTP 헤더: 다음 형식으로 Okta API 키를 입력합니다(
Authorization:<API_KEY>
). - API 호스트 이름: Okta 호스트의 도메인 이름을 지정합니다 (예:
<your-domain>.okta.com
). - 애셋 네임스페이스: 애셋 네임스페이스입니다.
- 수집 라벨: 이 피드의 이벤트에 적용된 라벨입니다.
고급 옵션
- 피드 이름: 피드를 식별하는 미리 채워진 값입니다.
- 애셋 네임스페이스: 피드와 연결된 네임스페이스입니다.
- 수집 라벨: 이 피드의 모든 이벤트에 적용되는 라벨입니다.
피드 만들기를 클릭합니다.
이 제품군 내에서 다양한 로그 유형에 대해 여러 피드를 구성하는 방법에 관한 자세한 내용은 제품별 피드 구성을 참고하세요.
UDM 매핑 테이블
로그 필드 | UDM 매핑 | 설명 |
---|---|---|
actor.displayName |
principal.resource.attribute.labels |
|
assigned_group[] |
security_result.detection_fields |
|
created |
target.resource.attribute.labels |
|
credentials.oauthClient.autoKeyRotation |
security_result.detection_fields |
|
credentials.oauthClient.pkce_required |
security_result.detection_fields |
|
credentials.oauthClient.token_endpoint_auth_method |
security_result.detection_fields |
|
credentials.signing.kid |
security_result.detection_fields |
|
credentials.userNameTemplate.pushStatus |
security_result.detection_fields |
|
credentials.userNameTemplate.template |
metadata.product_event_type |
|
credentials.userNameTemplate.type |
security_result.detection_fields |
|
id |
principal.user.userid |
|
label |
target.resource.attribute.labels |
|
lastUpdated |
target.resource.attribute.labels |
|
orn |
target.resource.attribute.labels |
|
settings.implicitAssignment |
security_result.detection_fields |
|
settings.manualProvisioning |
security_result.detection_fields |
|
settings.notifications.vpn.network.connection |
security_result.detection_fields |
|
settings.notifications.vpn.network.helpUrl |
security_result.detection_fields |
|
settings.notifications.vpn.network.message |
security_result.detection_fields |
|
settings.oauthClient.application_type |
security_result.detection_fields |
|
settings.oauthClient.client_uri |
security_result.detection_fields |
|
settings.oauthClient.consent_method |
security_result.detection_fields |
|
settings.oauthClient.dpop_bound_access_tokens |
security_result.detection_fields |
|
settings.oauthClient.grant_types[] |
security_result.detection_fields |
|
settings.oauthClient.idp_initiated_login.mode |
security_result.detection_fields |
|
settings.oauthClient.initiate_login_uri |
security_result.detection_fields |
|
settings.oauthClient.issuer_mode |
security_result.detection_fields |
|
settings.oauthClient.logo_uri |
security_result.detection_fields |
|
settings.oauthClient.pkce_required |
security_result.detection_fields |
|
settings.oauthClient.redirect_uris[] |
security_result.detection_fields |
|
settings.oauthClient.response_types[] |
security_result.detection_fields |
|
settings.oauthClient.token_endpoint_auth_method |
security_result.detection_fields |
|
settings.oauthClient.wildcard_redirect |
security_result.detection_fields |
|
settings.signOn.acsUrl |
security_result.detection_fields |
|
settings.signOn.assertionSigned |
security_result.detection_fields |
|
settings.signOn.attributeStatements[0].filterType |
security_result.detection_fields |
|
settings.signOn.attributeStatements[0].filterValue |
security_result.detection_fields |
|
settings.signOn.attributeStatements[0].name |
security_result.detection_fields |
|
settings.signOn.attributeStatements[0].namespace |
security_result.detection_fields |
|
settings.signOn.attributeStatements[0].type |
security_result.detection_fields |
|
settings.signOn.audience |
security_result.detection_fields |
|
settings.signOn.authnContextClassRef |
security_result.detection_fields |
|
settings.signOn.defaultRelayState |
security_result.detection_fields |
|
settings.signOn.destination |
security_result.detection_fields |
|
settings.signOn.digestAlgorithm |
security_result.detection_fields |
|
settings.signOn.idpIssuer |
security_result.detection_fields |
|
settings.signOn.recipient |
security_result.detection_fields |
|
settings.signOn.responseSigned |
security_result.detection_fields |
|
settings.signOn.signatureAlgorithm |
security_result.detection_fields |
|
settings.signOn.subjectNameIdFormat |
security_result.detection_fields |
|
settings.signOn.subjectNameIdTemplate |
security_result.detection_fields |
|
signOnMode |
security_result.detection_fields |
|
status |
security_result.detection_fields |
|
visibility.appLinks.oidc_client_link |
security_result.detection_fields |
|
visibility.autoSubmitToolbar |
security_result.detection_fields |
|
visibility.hide.iOS |
security_result.detection_fields |
|
visibility.hide.web |
security_result.detection_fields |
|
해당 사항 없음 | metadata.vendor_name |
Okta 로 설정합니다. |
해당 사항 없음 | metadata.product_name |
Okta 로 설정합니다. |
해당 사항 없음 | extensions.auth.type |
SSO 로 설정합니다. |
배열 매핑 표
다음 표에는 Okta 배열 요소와 반복 UDM 필드의 매핑이 나와 있습니다.
로그 배열 | 이벤트 배열 | 설명 |
---|---|---|
actor.alternateId |
TBD |
|
actor.displayName |
principal.user.user_display_name |
eventType이 application.user_membership.update , policy.rule.update 또는 user.authentication.auth_via_radius 인 경우 |
actor.displayName |
principal.user.user_display_name |
eventType이 application.user_membership.update , policy.rule.update 또는 user.authentication.auth_via_radius 이 아닌 경우 |
actor.type |
principal.user.attribute.roles.name |
eventType이 application.user_membership.update , policy.rule.update 또는 user.authentication.auth_via_radius 인 경우 |
actor.type |
principal.user.attribute.roles.name |
eventType이 application.user_membership.update , policy.rule.update 또는 user.authentication.auth_via_radius 이 아닌 경우 |
anonymous |
security_result.detection_fields |
|
authenticationContext.externalSessionId |
network.parent_session_id |
|
client.device |
principal.asset.type |
지원: LINUX, WINDOWS, MAC, IOS, ANDROID, CHROME_OS |
client.device |
additional.fields |
Event_type |
client.geographicalContext.city |
principal.location.city |
|
client.geographicalContext.country |
principal.location.country_or_region |
|
client.geographicalContext.geolocation.lat |
principal.location.region_latitude |
|
client.geographicalContext.geolocation.lon |
principal.location.region_longitude |
|
client.geographicalContext.postalCode |
additional.fields |
|
client.geographicalContext.postalCode |
target.resource.attribute.labels |
|
client.ipAddress |
principal.ip |
|
client.userAgent |
network.http.user_agent network.http.parsed_user_agent |
|
client.userAgent.browser |
target.resource.attribute.labels |
|
client.userAgent.os |
principal.platform |
|
client.userAgent.os |
principal.platform |
|
client.userAgent.rawUserAgent |
network.http.user_agent network.http.parsed_user_agent |
|
client.zone |
additional.fields |
Event_type |
debugContext.debugData.behaviors.New City |
security_result.detection_fields |
|
debugContext.debugData.behaviors.New Country |
security_result.detection_fields |
|
debugContext.debugData.behaviors.New Device |
security_result.detection_fields |
|
debugContext.debugData.behaviors.New Geo-Location |
security_result.detection_fields |
|
debugContext.debugData.behaviors.New IP |
security_result.detection_fields |
|
debugContext.debugData.behaviors.New State |
security_result.detection_fields |
|
debugContext.debugData.behaviors.Velocity |
security_result.detection_fields |
|
debugContext.debugData.clientAddress |
principal.ip principal.asset.ip |
|
debugContext.debugData.dtHash |
security_result.detection_fields |
|
debugContext.debugData.factor |
security_result.detection_fields |
|
debugContext.debugData.factorIntent |
security_result.detection_fields |
|
debugContext.debugData.logOnlySecurityData.behaviors |
security_result.description |
|
debugContext.debugData.logOnlySecurityData.behaviors.New City |
security_result.detection_fields |
|
debugContext.debugData.logOnlySecurityData.behaviors.New Country |
security_result.detection_fields |
|
debugContext.debugData.logOnlySecurityData.behaviors.New Device |
security_result.detection_fields |
|
debugContext.debugData.logOnlySecurityData.behaviors.New Geo-Location |
security_result.detection_fields |
|
debugContext.debugData.logOnlySecurityData.behaviors.New IP |
security_result.detection_fields |
|
debugContext.debugData.logOnlySecurityData.behaviors.New State |
security_result.detection_fields |
|
debugContext.debugData.logOnlySecurityData.behaviors.Velocity |
security_result.detection_fields |
|
debugContext.debugData.logOnlySecurityData.risk.reasons |
security_result.detection_fields |
|
debugContext.debugData.logOnlySecurityData.risk.reasons |
security_result.description |
|
debugContext.debugData.logOnlySecurityData.risk.level |
security_result.severity_details |
|
debugContext.debugData.logOnlySecurityData.url |
target.url |
|
debugContext.debugData.privilegeGranted[] |
target.user.attribute.roles.name target.user.attribute.roles.description |
|
debugContext.debugData.pushOnlyResponseType |
security_result.detection_fields |
|
debugContext.debugData.pushWithNumberChallengeResponseType |
security_result.detection_fields |
|
debugContext.debugData.requestUri |
extensions.auth.auth_details |
|
debugContext.debugData.requestUri |
target.url |
|
debugContext.debugData.risk |
security_result.detection_fields |
security_result.detection_fields 에 매핑된 이유 |
debugContext.debugData.suspiciousActivityEventId |
security_result.detection_fields |
|
debugContext.debugData.suspiciousActivityEventType |
security_result.detection_fields |
|
debugContext.debugData.threatDetections |
security_result.detection_fields |
|
debugContext.debugData.threatSuspected |
security_result.detection_fields security_result.threat_status |
|
debugContext.debugData.threatSuspected |
security_result.detection_fields security_result.threat_status |
|
debugContext.debugData.tunnels[].anonymous |
security_result.detection_fields |
|
debugContext.debugData.tunnels[].operator |
security_result.detection_fields |
|
debugContext.debugData.tunnels[].type |
security_result.detection_fields |
|
debugContext.debugData.tunnels.n.anonymous |
security_result.detection_fields |
|
debugContext.debugData.tunnels.n.operator |
security_result.detection_fields |
|
debugContext.debugData.tunnels.n.type |
security_result.detection_fields |
|
detail.actor.id |
principal.user.product_object_id |
eventType이 application.user_membership.update , policy.rule.update 또는 user.authentication.auth_via_radius 인 경우 |
detail.actor.id |
principal.user.product_object_id |
eventType이 application.user_membership.update , policy.rule.update 또는 user.authentication.auth_via_radius 이 아닌 경우 |
detail.authenticationContext.externalSessionId |
network.parent_session_id |
|
detail.client.ipChain.0.ip client.ipAddress |
principal.ip principal.asset.ip |
|
detail.debugContext.debugData.dtHash |
security_result.detection_fields |
|
detail.debugContext.debugData.factor |
security_result.detection_fields |
|
detail.debugContext.debugData.factorIntent |
security_result.detection_fields |
|
detail.debugContext.debugData.pushOnlyResponseType |
security_result.detection_fields |
|
detail.debugContext.debugData.pushWithNumberChallengeResponseType |
security_result.detection_fields |
|
detail.debugContext.debugData.requestUri |
target.url |
|
detail.eventType |
metadata.product_event_type |
|
detail.outcome.reason |
security_result.category_details |
|
detail.outcome.result |
security_result.action |
|
detail.request.ipChain.0.geographicalContext.city |
principal.location.city |
|
detail.request.ipChain.0.geographicalContext.country |
principal.location.country_or_region |
|
detail.request.ipChain.0.geographicalContext.state |
principal.location.state |
|
detail.severity |
security_result.severity |
|
detail.target.0.alternateId |
참고를 확인하세요. | tgtuser_id => target.user.userid %{tgtusername}@%{tgtdomain} => target.user.email_addresses |
detail.target.0.displayName |
target.application target.resource.name |
|
detail.target.0.displayName |
target.user.user_display_name |
|
detail.target.0.detailEntry.policyType} |
target.resource_ancestors.attribute.labels |
|
detail.target.0.id |
target.resource.product_object_id |
|
detail.target.0.id |
target.resource_ancestors.product_object_id |
|
detail.target.0.type |
target.resource.resource_subtype |
|
detail.target.0.type |
target.resource_ancestors.resource_subtype |
|
detail.uuid |
metadata.product_log_id |
|
displayMessage |
security_result.summary |
|
extensions.auth.type |
SSO |
Event_type |
extensions.auth.type |
SSO |
msg.target.type 이 AppInstance , PolicyEntity , PolicyRule , User 이외의 경우 |
eventType |
metadata.product_event_type |
|
eventType detail.eventType |
metadata.product_event_type |
|
json_array.n.actor.id |
principal.user.product_object_id |
|
mapped data.fields to fields |
||
metadata.product_name |
Okta |
Event_type |
metadata.vendor_name |
Okta |
Event_type |
msg.actor.alternateId |
참고를 확인하세요. | 파싱에 실패하면 principal.user.userid 에 매핑되고, 그렇지 않으면 사용자 이름을 principal.user.userid 에 매핑하거나 username@domain을 principal.user.email_addresses 에 매핑합니다. |
msg.actor.displayName |
principal.user.user_display_name |
|
msg.actor.type |
principal.user.attribute.roles.name |
|
msg.authenticationContext.authenticationProvider |
security_result.detection_fields |
Event_type |
msg.authenticationContext.credentialProvider |
security_result.detection_fields |
Event_type |
msg.authenticationContext.externalSessionId |
network.parent_session_id |
|
msg.client.device |
principal.asset.type |
지원: MOBILE, WORKSTATION, LAPTOP, IOT, NETWORK_ATTACHED_STORAGE, PRINTER, SCANNER, SERVER, TAPE_LIBRARY |
msg.client.geographicalContext.city |
principal.location.city |
|
msg.client.geographicalContext.country |
principal.location.country_or_region |
|
msg.client.geographicalContext.geolocation.lat |
principal.location.region_latitude |
|
msg.client.geographicalContext.geolocation.lon |
principal.location.region_longitude |
|
msg.client.geographicalContext.postalCode |
additional.fields |
|
msg.client.geographicalContext.state |
principal.location.state |
|
msg.client.ipAddress |
principal.ip |
|
msg.client.userAgent.browser |
target.resource.attribute.labels |
|
msg.client.userAgent.os |
principal.platform |
지원: LINUX, WINDOWS, MAC, IOS, ANDROID, CHROME_OS |
msg.client.userAgent.rawUserAgent |
network.http.user_agent network.http.parsed_user_agent |
|
msg.debugContext.debugData.dtHash |
security_result.detection_fields |
|
msg.debugContext.debugData.factor |
security_result.detection_fields |
|
msg.debugContext.debugData.factorIntent |
security_result.detection_fields |
|
msg.debugContext.debugData.logOnlySecurityData.behaviors |
security_result.description |
|
msg.debugContext.debugData.logOnlySecurityData.risk.reasons |
security_result.detection_fields |
|
msg.debugContext.debugData.logOnlySecurityData.url |
target.url |
|
msg.debugContext.debugData.pushOnlyResponseType |
security_result.detection_fields |
|
msg.debugContext.debugData.pushWithNumberChallengeResponseType |
security_result.detection_fields |
|
msg.debugContext.debugData.requestUri |
extensions.auth.auth_details |
|
msg.debugContext.debugData.threatSuspected |
security_result.detection_fields security_result.threat_status |
|
msg.displayMessage |
security_result.summary |
|
msg.eventType |
metadata.product_event_type |
|
msg.legacyEventType |
security_result.detection_fields |
|
msg.outcome.reason |
security_result.category_details |
|
msg.outcome.result |
security_result.action |
|
msg.published |
metadata.event_timestamp |
|
msg.request.ipChain.n.geographicalContext.city |
intermediary[n].location.city |
|
msg.request.ipChain.n.geographicalContext.country |
intermediary[n].location.country_or_region |
|
msg.request.ipChain.n.geographicalContext.geolocation.lat |
intermediary[n].location.region_latitude |
|
msg.request.ipChain.n.geographicalContext.geolocation.lon |
intermediary[n].location.region_longitude |
|
msg.request.ipChain.n.geographicalContext.state |
intermediary[n].location.state |
|
msg.request.ipChain.n.ip |
intermediary[n].ip |
|
msg.securityContext.asNumber |
security_result.detection_fields |
|
msg.securityContext.asOrg |
security_result.detection_fields |
|
msg.securityContext.domain |
security_result.detection_fields |
|
msg.securityContext.isProxy |
security_result.detection_fields |
|
msg.securityContext.isp |
security_result.detection_fields |
|
msg.severity |
security_result.severity |
|
msg.target.alternateId (when msg.target.type == User) |
target.user.email_addresses |
msg.target.type = User 인 경우 하지만 파싱이 실패하면 target.user.userid 에 매핑되거나 target_user_name 이 target.user.userid 에 매핑됩니다. |
msg.target.detailEntry.policyType |
target.resource_ancestors.attribute.labels |
msg.target.type = PolicyEntity 인 경우 |
msg.target.detailEntry.signOnModeType |
security_result.detection_fields |
msg.target.type 이 AppInstance , PolicyEntity , PolicyRule , User 이외의 경우 |
msg.target.displayName |
additional.fields |
|
msg.target.displayName |
about.resource.name |
msg.target.type 이 AppInstance , PolicyEntity , PolicyRule , User 이외의 경우 |
msg.target.displayName |
principal.user.user_display_name |
msg.target.type = User 인 경우 |
msg.target.displayName |
target.application |
msg.target.type = AppInstance 인 경우 |
msg.target.displayName |
target.resource.name |
msg.target.type = AppInstance 인 경우 |
msg.target.displayName |
target.resource.name |
msg.target.type = PolicyRule 인 경우 |
msg.target.displayName |
target.resource_ancestors.name |
msg.target.type = PolicyEntity 인 경우 |
msg.target.id |
about.resource.product_object_id |
msg.target.type 이 AppInstance , PolicyEntity , PolicyRule , User 이외의 경우 |
msg.target.id |
target.resource.product_object_id |
msg.target.type = AppInstance 인 경우 |
msg.target.id |
target.resource.product_object_id |
msg.target.type = PolicyRule 인 경우 |
msg.target.id |
target.resource_ancestors.product_object_id |
msg.target.type = PolicyEntity 인 경우 |
msg.target.id |
target.user.product_object_id |
msg.target.type = User 인 경우 |
msg.target.type |
about.resource.resource_subtype |
msg.target.type 이 AppInstance , PolicyEntity , PolicyRule , User 이외의 경우 |
msg.target.type |
target.resource.resource_subtype |
msg.target.type = AppInstance 인 경우 |
msg.target.type |
target.resource.resource_subtype |
msg.target.type = PolicyRule 인 경우 |
msg.target.type |
target.resource_ancestors.resource_subtype |
msg.target.type = PolicyEntity 인 경우 |
msg.target.type |
target.user.attribute.roles.name |
msg.target.type = User 인 경우 |
msg.transaction.id |
network.session_id |
|
msg.transaction.type |
additional.fields |
Event_type |
msg.uuid |
metadata.product_log_id |
|
operator |
security_result.detection_fields |
|
outcome.reason detail.outcome.reason |
security_result.category_details |
|
outcome.result detail.outcome.result |
security_result.action |
|
profile.displayName |
principal.user.user_display_name |
|
profile.email |
principal.user.email_addresses |
|
profile.login |
principal.user.userid |
username => principal.user.userid |
published |
metadata.event_timestamp |
|
published |
metadata.event_timestamp |
|
request.ipChain.0.geographicalContext.city detail.request.ipChain.0.geographicalContext.city |
principal.location.city |
|
request.ipChain.0.geographicalContext.country detail.request.ipChain.0.geographicalContext.country |
principal.location.country_or_region |
|
request.ipChain.0.geographicalContext.state detail.request.ipChain.0.geographicalContext.state |
principal.location.state |
|
request.ipChain.0.ip |
principal.ip principal.asset.ip |
|
request.ipChain.1.geographicalContext.city |
intermediary.location.city |
|
request.ipChain.1.geographicalContext.country |
intermediary.location.country_or_region |
|
request.ipChain.1.geographicalContext.state |
intermediary.location.state |
|
securityContext.asNumber |
security_result.detection_fields |
|
securityContext.asOrg |
security_result.detection_fields |
|
securityContext.domain |
security_result.detection_fields |
|
securityContext.isProxy |
security_result.detection_fields |
|
securityContext.isProxy |
security_result.detection_fields additional.fields |
|
securityContext.isp |
security_result.detection_fields |
|
severity detail.severity |
security_result.severity |
|
target[].alternateId |
target.resource.attribute.labels |
|
target[].detailEntry.methodTypeUsed |
target.resource_ancestors.attribute.labels |
|
target[].detailEntry.methodUsedVerifiedProperties |
target.resource_ancestors.attribute.labels |
|
target[].detailEntry.policyRuleFactorMode |
security_result.detection_fields |
|
target[].detailEntry.policyType |
target.resource_ancestors.attribute.labels |
|
target[].detailEntry.signOnModeType |
security_result.detection_fields |
|
target[].displayName |
additional.fields |
|
target[].displayName |
target.application target.resource.name |
|
target[].displayName |
target.resource.name |
|
target[].displayName |
target.resource_ancestors.name |
|
target[].id |
target.resource.product_object_id |
|
target[].id |
target.resource_ancestors.product_object_id |
|
target[].type |
target.resource.resource_subtype |
|
target[].type |
target.resource_ancestors.resource_subtype |
|
target.0.alternateId |
참고를 확인하세요. | tgtuser_id => target.user.userid %{tgtusername}@%{tgtdomain} => target.user.email_addresses |
target.0.detailEntry.clientAppId |
target.asset_id |
|
target.0.displayName detail.target.0.displayName |
target.user.user_display_name |
|
target.0.displayName /target.1.displayName |
target.user.group_identifiers |
|
target.0.id |
target.user.product_object_id |
|
target.0.type detail.target.0.type |
target.user.attribute.roles.name |
|
target.1.alternateId |
참고를 확인하세요. | tgtuser_id => target.user.userid %{tgtusername}@%{tgtdomain} => target.user.email_addresses |
target.1.detailEntry.clientAppId |
target.asset_id |
|
target.1.displayName |
target.user.user_display_name |
|
target.1.id |
target.user.product_object_id |
|
target.1.type |
target.user.attribute.roles.name |
|
transaction.id |
network.session_id |
|
type |
security_result.detection_fields |
|
user_agent.browser |
target.resource.attribute.labels |
|
user_email |
principal.user.email_addresses |
eventType이 application.user_membership.update , policy.rule.update 또는 user.authentication.auth_via_radius 인 경우 |
user_email |
principal.user.email_addresses |
eventType이 application.user_membership.update , policy.rule.update 또는 user.authentication.auth_via_radius 이 아닌 경우 |
user_id |
principal.user.userid |
eventType이 application.user_membership.update , policy.rule.update 또는 user.authentication.auth_via_radius 인 경우 |
user_id |
principal.user.userid |
eventType이 application.user_membership.update , policy.rule.update 또는 user.authentication.auth_via_radius 이 아닌 경우 |
uuid |
metadata.product_log_id |
|
uuid |
metadata.product_log_id |
UDM 매핑 델타 참조
2025년 8월 26일에 Google SecOps는 Okta 로그 필드와 UDM 필드의 매핑에 대한 중요한 변경사항과 이벤트 유형의 매핑에 대한 변경사항이 포함된 새로운 버전의 Okta 파서를 출시했습니다.
로그 필드 매핑 델타
다음 표에는 2025년 8월 26일 이전에 노출된 Okta 로그-UDM 필드와 그 이후의 매핑 델타가 나와 있습니다 (각각 이전 매핑 및 현재 매핑 열에 나열됨).
로그 필드 | 이전 매핑 | 현재 매핑 |
---|---|---|
client.geographicalContext.geolocation.lat |
target.location.region_latitude |
principal.location.region_coordinates.latitude |
client.geographicalContext.geolocation.lon |
target.location.region_longitude |
principal.location.region_coordinates.longitude |
created |
target.resource.attribute.labels |
metadata.event_timestamp |
debugContext.debugData.authnRequestId |
additional.fields |
security_result.detection_fields |
debugContext.debugData.factorType |
additional.fields |
security_result.detection_fields |
debugContext.debugData.traceId |
additional.fields |
security_result.detection_fields |
debugContext.debugData.tunnels.anonymous |
security_result.detection_fields |
network.proxy_info.anonymous |
lastUpdated |
target.resource.attribute.labels |
target.resource.attribute.last_update_time |
플랫폼이 iOS인 경우 platform |
principal.platform = MAC |
principal.platform = IOS |
securityContext.asOrg |
security_result.detection_fields |
network.organization_name |
securityContext.isProxy |
additional.fields |
network.is_proxy |
target.detailEntry.methodTypeUsed |
target.resource.attribute.labels |
security_result.detection_fields |
target.detailEntry.methodUsedVerifiedProperties |
target.resource.attribute.labels |
security_result.detection_fields |
이벤트 유형 매핑 델타
이전에 일반 이벤트로 분류되었던 여러 이벤트가 이제 의미 있는 이벤트 유형으로 올바르게 분류됩니다.
다음 표에는 2025년 8월 26일 이전과 이후의 Okta 이벤트 유형 처리의 차이가 나와 있습니다 (각각 이전 event_type 및 현재 event_type 열에 나열됨).
로그의 eventType | 이전 event_type | 현재 event_type |
---|---|---|
app.oauth2.as.authorize |
USER_UNCATEGORIZED |
USER_LOGIN |
app.oauth2.as.authorize.code |
USER_UNCATEGORIZED |
USER_LOGIN |
app.oauth2.as.authorize.implicit.access_token |
USER_UNCATEGORIZED |
USER_LOGIN |
app.oauth2.as.authorize.implicit.id_token |
USER_UNCATEGORIZED |
USER_LOGIN |
app.oauth2.authorize.code |
USER_UNCATEGORIZED |
USER_LOGIN |
app.oauth2.token.grant |
USER_UNCATEGORIZED |
USER_LOGIN |
application.user_membership.remove |
USER_UNCATEGORIZED |
USER_CHANGE_PERMISSIONS |
application.user_membership.update |
STATUS_UPDATE |
USER_CHANGE_PERMISSIONS |
user.authentication.auth_via_AD_agent |
STATUS_UPDATE |
USER_UNCATEGORIZED |
user.authentication.slo |
USER_UNCATEGORIZED |
USER_LOGOUT |
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가로부터 답변을 받으세요.