如何导出Okta系统日志

如何导出Okta系统日志

SOC Prime Team
SOC Prime Team linkedin icon 关注

在 Okta 管理控制台中, 报告 → 系统日志 允许您搜索事件并下载结果。对于 JSON,使用系统日志 API:GET /api/v1/logs,带有起始和结束时间,按照下一个链接直到结束。下面是一个简短的脚本。Okta 保留系统日志事件 90 天。

当身份成为边界时,Okta 的系统日志就是门户日志。它记录每一次登录、每次 MFA 推送、每次因素重置和每次管理员角色更改。Prime Core 有 58 条针对 Okta 数据的检测规则,映射到 32 个 MITRE ATT&CK 技术。其中包括:密码喷射(T1110.003)、MFA 疲劳(T1621)和攻击者篡改 MFA 注册(T1556.006)。

免费开始

在您开始之前

保留期为 90 天。 任何旧的内容仅存在于您流式传输或转发 Okta 日志的地方,例如 SIEM。

您需要一个令牌。 一个 API 令牌(安全 → API → 令牌)继承创建它的管理员的权限。只读管理员对于日志足够。对于任何自动化操作,具有 okta.logs.read 范围的 OAuth 服务应用是更干净的选择。不论哪种情况,令牌都是凭据。请将其从 shell 历史记录中排除,并在完成后撤销它。

适用速率限制。 日志端点有其自己的速率限制。大时间窗口很好,只是不能立即。

使用系统日志 API 导出

这个 Python 脚本遍历一个时间窗口并逐行写入事件。需要 requests(pip install requests):

import json, os, requests



org = "https://yourorg.okta.com"

headers = {"Authorization": f"SSWS {os.environ['OKTA_TOKEN']}", "Accept": "application/json"}

url = f"{org}/api/v1/logs"

params = {"since": "2026-10-19T00:00:00Z", "until": "2026-10-20T00:00:00Z", "limit": 1000}



with open("okta_1019.jsonl", "w") as out:

while url:

r = requests.get(url, headers=headers, params=params, timeout=60)

r.raise_for_status()

events = r.json()

for e in events:

out.write(json.dumps(e) + "n")

if not events:

break

url = r.links.get("next", {}).get("url")

params = None # 下一个链接已经带有查询

始终设置 until. 没有它,Okta 将处理请求为实时轮询,并不断返回下一个链接。您的循环将永远运行,等待新事件。

要缩小范围,添加一个过滤器到参数中,例如 “filter”: ‘eventType eq “user.session.start”‘。或者使用 “q”: “jane” 进行关键字搜索。

要寻找的内容

eventType为什么重要
user.session.start with outcome.result: FAILURE登录失败;来自一个 IP 范围的许多用户意味着喷射攻击
user.mfa.okta_verify.deny_push用户拒绝了推送;这些的激增是正进行中的 MFA 疲劳
user.mfa.factor.deactivate, user.mfa.factor.reset_all因素被移除,通常是在帮助台社会工程电话之后
user.account.privilege.grant授予了管理员角色
policy.rule.update, policy.lifecycle.update登录或 MFA 策略更改,可能被削弱
system.api_token.create一个新的 API 令牌,一种保持访问的安静方式

讲述故事的字段:actor.alternateId(谁),client.ipAddress 和 client.geographicalContext(从哪里),outcome(发生了什么),以及 debugContext.debugData(细节)。

上传、清理并在 LogTotal 中审核

  1. 上传。 打开 logtotal.com 并拖入 .jsonl 文件。
  2. 清理。
  3. 审核。

当出错时

症状可能的原因Fix
401错误或已撤销的令牌,或缺少 SSWS 前缀检查头格式;创建一个新令牌
403令牌创建者缺乏读取日志的权限使用具有日志访问权限的管理员令牌
429达到速率限制等待 X-Rate-Limit-Reset 中的时间,然后继续
脚本永远不会完成查询中没有 until设置 until
没有超过 90 天的内容Okta 保留检查您的 SIEM 或日志流目的地

FAQ

我不能只使用管理控制台吗?

对于快速查看短时间窗口,是的。对于任何您想分析或保存的内容,API 为您提供完整的 JSON 和每一个字段。

这包括 Auth0 吗?

不。这本指南关于 Okta Workforce Identify。Auth0 有自己的日志格式和 API。

加入 SOC Prime 的 Detection as Code 平台 以提高对与您的业务最相关的威胁的可见性。为了帮助您开始并带来即时价值,现在与 SOC Prime 专家预约会议。