Огляд
Okta може надавати нормалізовані дані про життєвий цикл користувачів, автентифікацію, MFA та адміністративну активність. Серед перевірених прикладів:account.locked— обліковий запис заблокованоmfa.factor.activated— активує додаткові фактори MFAauth.login.failed— не вдається увійти
/api/v1/users) та системний журнал (/api/v1/logs). Див. як дані інтеграцій перетворюються на Signals.
Вибір способу підключення
Обидва способи потребують однакового доступу, тож вибір стосується лише поводження з обліковими даними, а не того, що платформа може зчитувати.
Варіант A — API-токен (SSWS)
Рекомендовано.Що потрібно для Living Security
Передумови
- Щоб створити користувача службового облікового запису, призначити ролі адміністратора та створити API-токени, ви повинні мати роль Super Administrator в Okta.
1
Створіть користувача — власника токена
API-токен Okta має права користувача, який його створив, і перестає працювати, якщо цього користувача деактивовано. Створіть окремий службовий обліковий запис замість особистого облікового запису адміністратора, щоб підключення працювало попри кадрові зміни.
- В Admin Console перейдіть до Directory → People.
- Натисніть Add person і створіть користувача, наприклад
svc-livingsecurity@yourcompany.com. - Активуйте обліковий запис.
2
Призначте роль адміністратора лише для читання
Платформа лише зчитує дані. Надання прав, ширших за читання, наділяє токен дозволами, які він ніколи не використовує.
- Перейдіть до Security → Administrators.
- Натисніть Add administrator і виберіть користувача з попереднього кроку.
- Призначте роль Read-only Administrator.
- Збережіть зміни.
Без ролі адміністратора виклики Okta Management API виконуються успішно з
200 OK і повертають порожній список. Жодної 403, яка б повідомила про відсутність ролі, не буде — потоки просто залишаються порожніми.3
Створіть API-токен
- Увійдіть в Admin Console як користувач службового облікового запису з кроку 1. Токен успадковує права того облікового запису, який його створює.
- Перейдіть до Security → API і відкрийте вкладку Tokens.
- Натисніть Create token, вкажіть назву, наприклад
Living Security Platform, і натисніть Create token. - Скопіюйте значення токена зараз — Okta показує його лише один раз.
Наведений вище список адрес важливий, лише якщо ваша організація Okta обмежує доступ до API за network zone. Більшість організацій цього не роблять.
4
Визначте піддомен вашого тенанта
URL-адреса вашої Admin Console має вигляд
https://acme-admin.okta.com. Піддомен тенанта — це acme — без суфікса -admin, без .okta.com і без https://.Усунення несправностей
Підключено, але всі потоки порожні
Підключено, але всі потоки порожні
Власник токена не має ролі адміністратора. Призначте службовому обліковому запису роль Read-only Administrator (крок 2) — за відсутності ролі API повертає
200 OK з порожнім списком замість помилки.Синхронізації завершуються помилкою після кадрових змін
Синхронізації завершуються помилкою після кадрових змін
Токен перестає працювати, якщо користувача, який його створив, деактивовано. Саме тому токен має належати службовому обліковому запису, а не конкретній особі.
Варіант B — службовий застосунок OAuth 2.0
Використовуйте цей спосіб, якщо ваша політика безпеки не дозволяє довготривалі API-токени. Він замінює токен на ідентифікатор клієнта та пару ключів RSA, якою володієте ви. На платформі це плитка Okta (OAuth 2.0) у розділі Settings → Integrations → Catalog. Щоб автентифікуватися в Okta за допомогою Client Credentials, вам потрібно таке:- Client ID — унікальний ідентифікатор вашого застосунку Okta API Services.
- Private Key (JWK) — приватний ключ RSA у форматі JSON Web Key, відкритий ключ якого зареєстровано у вашому застосунку Okta.
- Okta Domain — лише піддомен вашого тенанта Okta (наприклад,
dev-12345678), а не повне ім’я хоста. - Scopes — розділений пробілами список областей доступу (scopes) Okta Management API (наприклад,
okta.users.read okta.logs.read).
private_key_jwt.
Передумови:
- Ви повинні мати обліковий запис Okta. Зареєструйте безкоштовний обліковий запис розробника на developer.okta.com.
Крок 1: Створення застосунку Okta API Services
- Увійдіть до Okta Admin Console.
- На бічній панелі ліворуч перейдіть до Applications > Applications.
- Натисніть Create App Integration.
- Виберіть API Services як метод входу та натисніть Next.
- Вкажіть назву застосунку та натисніть Save.
- На вкладці General застосунку знайдіть свій Client ID — він знадобиться на завершальному кроці.
- Встановіть для Client authentication значення Public key / Private key. Області доступу
okta.*підтримуються лише з цим методом автентифікації.
- Вимкніть Proof of possession (DPoP) — він не підтримується.
Застосунок має бути створений як API Services.
Крок 2: Генерація та реєстрація пари ключів RSA
Використання генератора ключів Okta
Okta може згенерувати пару ключів RSA безпосередньо в Admin Console:- В Admin Console відкрийте свій застосунок API Services.
- Перейдіть на вкладку General і прокрутіть до розділу PUBLIC KEYS.
- Натисніть Add Key, а потім виберіть Generate new key.
- Натисніть Save — Okta згенерує пару ключів і один раз покаже Private Key (JWK).
- Негайно скопіюйте та збережіть JSON приватного ключа — повторно його показано не буде.
- Відкритий ключ автоматично реєструється у вашому застосунку.
Скопіюйте приватний JWK, перш ніж закривати діалогове вікно. На завершальному кроці вставте його в поле Private Key у Living Security Platform.
Створення власного ключа
Okta використовуєprivate_key_jwt для застосунків API Services. Ви генеруєте пару ключів RSA, реєструєте відкритий JWK в Okta і надаєте приватний JWK для Living Security Platform.
Згенеруйте приватний JWK за допомогою наведеного нижче скрипта Node.js (потрібен Node.js 18+):
- В Admin Console відкрийте свій застосунок API Services.
- Перейдіть на вкладку General і прокрутіть до розділу PUBLIC KEYS.
- Натисніть Add Key, вставте JSON відкритого JWK, виведений наведеним вище скриптом, і натисніть Save.
Саме приватний JWK ви вставляєте в Living Security Platform. Він містить увесь ключовий матеріал (
d, p, q, dp, dq, qi) і kid. Зберігайте його в таємниці.Крок 3: Визначення Okta Domain
Введіть лише піддомен вашого тенанта Okta — частину перед.okta.com.
- В Admin Console в адресному рядку браузера відображатиметься URL-адреса на кшталт
https://dev-12345678-admin.okta.com. - Ваш Okta Domain — це лише піддомен (наприклад,
dev-12345678), а неdev-12345678.okta.com. - Також можна перейти до Settings > Account в Admin Console, щоб знайти свій домен Okta, а потім використати частину з піддоменом.
Крок 4: Надання застосунку областей доступу API
Okta вимагає принаймні однієї області доступу в кожному запиті токена. Щоб ваш застосунок міг запитувати певні області доступу, їх потрібно спершу надати:- В Admin Console перейдіть до Applications > Applications і відкрийте свій застосунок.
- Натисніть вкладку Okta API Scopes.
- Надайте області доступу, потрібні вашій інтеграції:
okta.users.readіokta.logs.read.
Крок 5: Призначення застосунку ролі адміністратора
Самого надання областей доступу недостатньо — кінцеві точки Okta Management API (наприклад,/api/v1/users) без жодних повідомлень повертають порожню відповідь 200 [], якщо у вашого застосунку немає ролі адміністратора. Необхідно призначити принаймні Read-Only Administrator:
- В Admin Console перейдіть до Security > Administrators (або до Applications > Applications > ваш застосунок > Admin roles).
- Натисніть Add administrator assignment і виберіть свій застосунок API Services.
- Призначте роль Read-Only Administrator (або вищу, залежно від потрібних вам областей доступу).
- Натисніть Save.
Без ролі адміністратора виклики API виконуються успішно з
200 OK, але повертають порожні результати, а помилки 403, яка б вказала на проблему, немає.Крок 6: Введення облікових даних у Living Security Platform
Коли у вас є Client ID, Private Key (JWK), Okta Domain і Scopes:- Відкрийте форму, у якій потрібно автентифікуватися в Okta (Client Credentials).
- Введіть свій Client ID.
- Вставте свій Private Key (JWK) — повний об’єкт JSON зі скрипта вище (в один рядок або з форматуванням).
- Введіть свій Okta Domain лише як піддомен тенанта (наприклад,
dev-12345678). - Введіть Scopes у вигляді списку, розділеного пробілами (наприклад,
okta.users.read okta.logs.read). - Надішліть форму, і автентифікація має завершитися успішно.
Окремі частини цієї документації адаптовано з Nango та використано за ліцензією Elastic License 2.0.

