收集 Okta 日志

支持的语言:

本文档介绍了如何使用 Okta API 将 Okta 日志注入到 Google Security Operations。解析器会提取系统日志,并处理 JSON 数组中的单个事件和批处理事件。它会将数据标准化为 UDM 格式,将 Okta 字段映射到 UDM 等效字段,通过解析的用户代理、地理位置信息和身份验证详细信息来丰富数据,并根据结果和风险信息生成安全结果事件。

准备工作

  • Google SecOps 实例
  • Okta 的特权访问权限

如何配置 Okta

如需配置 Okta SSO,请完成以下任务:

创建具有只读权限的 Okta 管理员用户

  1. 登录 Okta 管理员控制台。
  2. 创建标准用户。

    • 依次前往目录 > 人员
    • 点击添加用户,然后填写必填字段。
  3. 依次选择安全性 > 管理员

  4. 点击添加管理员

  5. 管理员分配(按管理员)字段中,找到“标准用户”。

  6. 角色部分中,从列表中选择只读管理员

  7. 退出管理员账号。

获取 API 密钥

  1. 使用只读管理员用户登录 Okta 管理员控制台
  2. 依次前往安全性 > API > 令牌
  3. 点击 Create Token
  4. 为令牌提供一个有意义的名称。
  5. 提供将使用 API 的 IP 区域(如果不确定,可以选择任何 IP)。
  6. 点击 Create Token
  7. 复制 API 密钥。
  8. 点击好的,知道了

设置 Feed

您可以通过两种不同的入口点在 Google SecOps 平台中设置 Feed:

  • SIEM 设置 > Feed > 添加新 Feed
  • 内容中心 > 内容包 > 开始

如何设置 Okta Feed

如需配置此日志类型,请按以下步骤操作:

  1. 点击 Okta pack。
  2. 找到 Okta 日志类型。
  3. 为以下字段指定值:

    • 来源类型:第三方 API(推荐)
    • 身份验证 HTTP 标头:输入 Okta API 密钥,格式如下:Authorization:<API_KEY>
    • API 主机名:指定 Okta 主机的域名(例如 <your-domain>.okta.com)。
    • 资产命名空间资产命名空间
    • 注入标签:应用于此 Feed 中事件的标签。

    高级选项

    • Feed 名称:用于标识 Feed 的预填充值。
    • 资产命名空间与 Feed 关联的命名空间
    • 提取标签:应用于相应 Feed 中所有事件的标签。
  4. 点击创建 Feed

如需详细了解如何为相应产品系列中的不同日志类型配置多个 Feed,请参阅按产品配置 Feed

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.updatepolicy.rule.updateuser.authentication.auth_via_radius 时。
actor.displayName principal.user.user_display_name 当 eventType 不是 application.user_membership.updatepolicy.rule.updateuser.authentication.auth_via_radius 时。
actor.type principal.user.attribute.roles.name 当 eventType 为 application.user_membership.updatepolicy.rule.updateuser.authentication.auth_via_radius 时。
actor.type principal.user.attribute.roles.name 当 eventType 不是 application.user_membership.updatepolicy.rule.updateuser.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.updatepolicy.rule.updateuser.authentication.auth_via_radius 时。
detail.actor.id principal.user.product_object_id 当 eventType 不是 application.user_membership.updatepolicy.rule.updateuser.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 不是 AppInstancePolicyEntityPolicyRuleUser 中的任何一种情况时。
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 支持:移动设备、工作站、笔记本电脑、物联网设备、网络连接存储设备、打印机、扫描仪、服务器、磁带库
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 不是 AppInstancePolicyEntityPolicyRuleUser 中的任何一种情况时。
msg.target.displayName additional.fields
msg.target.displayName about.resource.name msg.target.type 不是 AppInstancePolicyEntityPolicyRuleUser 中的任何一种情况时。
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 不是 AppInstancePolicyEntityPolicyRuleUser 中的任何一种情况时。
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 不是 AppInstancePolicyEntityPolicyRuleUser 中的任何一种情况时。
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.updatepolicy.rule.updateuser.authentication.auth_via_radius 时。
user_email principal.user.email_addresses 当 eventType 不是 application.user_membership.updatepolicy.rule.updateuser.authentication.auth_via_radius 时。
user_id principal.user.userid 当 eventType 为 application.user_membership.updatepolicy.rule.updateuser.authentication.auth_via_radius 时。
user_id principal.user.userid 当 eventType 不是 application.user_membership.updatepolicy.rule.updateuser.authentication.auth_via_radius 时。
uuid metadata.product_log_id
uuid metadata.product_log_id

UDM 映射增量参考信息

2025 年 8 月 26 日,Google SecOps 发布了新版 Okta 解析器,其中包含对 Okta 日志字段到 UDM 字段的映射以及事件类型映射的重大更改。

日志字段映射增量

下表列出了 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 日之前和之后(分别列在旧 event_type 列和当前 event-type 列中)Okta 事件类型处理方式的差异。

日志中的 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 专业人士那里获得解答。