У консолі адміністратора Okta, Звіти → Системний журнал дає вам можливість шукати події та завантажувати результати. Для формату JSON використовуйте API Системного журналу: GET /api/v1/logs з параметрами since і until, слідуючи за посиланням next, поки воно не закінчиться. Короткий сценарій наведено нижче. Okta зберігає події системного журналу протягом 90 днів.
Коли ідентичність є периметром, Системний журнал Okta – це журнал доступу. Він записує кожен вхід у систему, кожен push MFA, кожне скидання фактора і кожну зміну ролі адміністратора. Prime Core має 58 правил виявлення для даних Okta, які відповідають 32 технікам MITRE ATT&CK. Серед них: password spraying (T1110.003), втома MFA (T1621) і атаки, що порушують реєстрацію MFA (T1556.006).
Перед початком
Збереження становить 90 днів. Все, що старше, існує лише там, де ви потокове передаєте або пересилаєте журнали Okta, наприклад, у SIEM.
Вам потрібен токен. Токен API (Безпека → API → Токени) успадковує дозволи адміністратора, який його створив. Для журналів вистачить адміністратора з правами лише на читання. Для автоматизації краще використовувати додаток сервісу OAuth з областю okta.logs.read. У будь-якому випадку, токен є обліковими даними. Тримайте його подалі від історії 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 # the next link already carries the query
Завжди встановлюйте until. Без цього Okta розглядає запит як живе опитування і постійно повертає посилання next. Ваш цикл буде працювати вічно, очікуючи на нові події.
Для скорочення можна додати фільтр до параметрів, наприклад, “filter”: ‘eventType eq “user.session.start”‘. Або використовуйте “q”: “jane” для пошуку за ключовими словами.
Що шукати
| eventType | Чому це важливо |
|---|---|
| user.session.start with outcome.result: FAILURE | Невдалі входи; багато користувачів з однієї IP області означає розпилення |
| user.mfa.okta_verify.deny_push | Користувач відхилив 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
- Завантажити. Відкрити logtotal.com і завантажити файл .jsonl. [ДОВІДКА: екран завантаження, обмеження розміру]
- Санітайзування. [PROOF: what gets masked: usernames and emails, IPs, device and session IDs]. Look it over before you continue.
- Перегляд. [PROOF: what the results screen shows]
Коли все йде не так
| Симптом | Можлива причина | Fix |
|---|---|---|
| 401 | Неправильний або відкликаний токен, або відсутній префікс SSWS | Перевірте формат заголовка; створіть новий токен |
| 403 | Створювач токену не має прав на читання журналів | Використайте токен від адміністратора з доступом до журналів |
| 429 | Досягнуто обмеження швидкості | Дочекайтеся часу в X-Rate-Limit-Reset, потім продовжте |
| Сценарій ніколи не завершує роботу | В запиті відсутня until | Встановіть until |
| Немає даних старших за 90 днів | Збереження Okta | Перевірте ваш SIEM або місце потоку логів |
FAQ
Чи можу я просто використовувати Консоль адміністратора?
Для швидкого перегляду невеликого вікна, так. Для будь-чого, що ви хочете аналізувати або зберігати, API надає повний JSON з усіма полями.
Це покриває Auth0?
Ні. Цей посібник стосується Okta Workforce Identity. Auth0 має власний формат і API для журналів.