IBCOURSES / СПРАВОЧНИК ИБ

Keycloak — аудит административных изменений

К ответу ↓

Административный аудит описывает REST-операции управления realm. Он включается отдельно от пользовательских событий; representation зависит от настройки.

Например
Материалов с пояснениями: 94 · Записей реестров: 11 678

Уточнить поиск

События и журналы

Найдено: 84
Инструкция по проверке

Keycloak — аудит административных изменений

Административный аудит описывает REST-операции управления realm. Он включается отдельно от пользовательских событий; representation зависит от настройки.

Условия и область realm

Установите релиз Keycloak, имя realm в маршруте, его идентификатор и действовавшую настройку сохранения admin events. Пользовательские входы и административные изменения хранятся раздельно. Include representation влияет на доступность содержимого запроса; его отсутствие не означает отсутствия изменения. Состав событий сверяйте с версией установленного Keycloak. Настройки, права и очистка журнала здесь не изменяются.

Чтение API или копии

Пример GET показывает документированный admin-events endpoint, UTC-границы в epoch milliseconds и ограниченную страницу. Realm в URL — имя, не realmId. Значения в примере условные. Для уже полученного массива второй пример jq выбирает resourcePath. Проверьте страницы и временной охват: первые 100 записей не обязательно весь период. Ошибку доступа нельзя интерпретировать как отсутствие событий.

Разбор примера

Пример AdminEventRepresentation содержит UPDATE для USER и users/user-demo, а authDetails отдельно обозначает контекст аутентификации. Автор изменения и целевой пользователь — разные сущности. Поля optional; в примере намеренно нет time, error и representation, поэтому результат и полное содержимое операции не устанавливаются. Короткий путь ресурса нельзя считать реальным DN или ID пользователя иной системы.

Интерпретация

Сначала проверьте точный ресурс, тип операции, время и error в полной записи. Representation — записанный документ запроса, а не автоматически полный снимок «после»; длина и состав зависят от настройки. Не восстанавливайте незафиксированное прежнее значение. Административный client или service account не устанавливает человека, выполнившего изменение через внешнюю систему. Сверьте операцию с журналом управления и одобренной задачей.

Следующий шаг

Разрешите authDetails.userId/clientId в правильном realm, сохраните исходные IDs и сопоставьте сеанс либо журнал приложения-инициатора. Текущее состояние пользователя полезно для проверки сейчас, но может включать последующие изменения. Для вывода о последствиях найдите отдельный вход или действие целевого объекта. Не объединяйте одинаковые имена пользователей разных realms; область остаётся частью доказательства.

Если события нет

Проверьте realm, эпоху/UTC, страницы, права, настройку сохранения и срок доступности данных. Отдельно проверьте, не искалось пользовательское событие вместо административного. Включение сохранения или representation после операции не восстановит историческое содержимое. Зафиксируйте, нет ли события целиком или только payload, и запросите журнал внешнего инструмента управления без выдумывания недостающих полей.

Поля и область применения

Исходное полеСмысл и ограничения
authDetailsКонтекст аутентификации административного запроса.
operationTypeТип операции.
resourcePathЦелевой путь ресурса.
resourceTypeТип ресурса при наличии.
representationДокумент запроса при включённой записи; может быть ограничен.
errorОшибка при наличии.

Примеры записей

Данные в примерах условные. Состав полей зависит от версии и настроек источника.

Сокращённый AdminEventRepresentation

Фрагмент журнала. Пример фрагмента полей официальной representation. Имя realm в URL и realmId — разные сущности. Поля optional; time, error и representation здесь опущены, результат не установлен.

{
  "realmId": "realm-demo",
  "authDetails": {
    "realmId": "realm-demo",
    "clientId": "admin-client-demo",
    "userId": "operator-demo",
    "ipAddress": "192.0.2.25"
  },
  "operationType": "UPDATE",
  "resourceType": "USER",
  "resourcePath": "users/user-demo"
}

Команды и способы проверки

Укажите свой узел, путь к журналу и временной интервал. Требуемая среда указана рядом с командой.

Keycloak Admin REST API: пример чтения, realm=имя; без выполнения, токенов и подключения

GET /admin/realms/lab/admin-events?dateFrom=1793696400000&dateTo=1793703600000&first=0&max=100

jq, чтение уже полученного JSON-массива admin events

jq -c '.[] | select(.resourcePath == "users/user-demo") | {time, realmId, authDetails, operationType, resourceType, resourcePath, error}' keycloak-admin-events.json

Первоисточники

Параметры запроса и отсутствие error не заменяют проверку требуемого результата во всех зависимых системах.

Связанные материалы

Как пользоваться техническим справочником

Найдите порт, код ошибки, событие или источник журнала. Уточните протокол и систему, затем сверяйте значение, поля, примеры и первоисточники. Назначение порта не определяет фактическую службу, а одна запись не доказывает инцидент.

Материалы по разделам

События и журналы

Два ответа рядом

Сравнение источников

Сравнение показывает различия. События и поля разных систем не считаются эквивалентными.

Выберите службу

В списке — службы, доступные с текущими условиями. Число рядом — количество записей портов, а не программ на вашем узле.

Как искать в справочнике

Введите число, код, фрагмент сообщения или вопрос. Известный идентификатор поможет найти карточку; это не анализ самого инцидента.

  1. Введите номер, код, имя или фрагмент записи. Для портов можно использовать список: 80, 443, 8000–8010.
  2. Уточните поиск фильтрами. Все условия действуют одновременно. Числа в списках показывают, сколько материалов останется при выборе варианта.
  3. Службу выбирайте из каталога: поиск внутри списка помогает найти название, а кнопка «Выбрать» применяет его.
  4. Убирайте отдельные условия кнопкой × рядом с фильтром. «Сбросить фильтры» сохраняет текст поиска и текущий раздел.
  5. В карточке сверьте источник, версию и условия регистрации, затем откройте поля, примеры и первоисточник.

/ — перейти к поиску. Прямые ссылки открывают выбранную карточку в этом же справочнике.

Назначения портов и коды приведены по официальным реестрам. Версии, условия регистрации и ссылки на документацию указаны в карточках.

Избранное и недавние материалы хранятся в этом браузере. Запрос и фильтры сохраняются при возврате к выдаче и обновлении вкладки. Поиск работает локально.

Что есть в справочнике

От вопроса к свидетельствам: кто вошёл, что запустил, к каким данным обратился, что изменил и где искать следы.

Выберите область, чтобы посмотреть доступные источники и перейти к материалам.

Уточнить или исправить ответ

Скопируйте сообщение и отправьте его на mail@ibcourses.ru.