INTEGRITY Документация

Журналы аутентификации Access

Журналы аутентификации Access позволяют отслеживать, кто получал доступ к вашим защищённым приложениям, когда он это делал и был ли доступ разрешён. Используйте эти журналы для расследования подозрительных попыток входа, аудита действий пользователей или устранения проблем с доступом.

Cloudflare Access создаёт журналы аудита двух типов:

Журналы аутентификации

Cloudflare Access регистрирует событие аутентификации при каждой попытке пользователя или службы войти в приложение, независимо от того, успешна ли попытка.

Аутентификация на основе идентификации обозначает попытки входа, которые оценивались на основе того, кем является пользователь, например: его адрес электронной почты, группа поставщика идентификации (IdP), группа SAML или утверждение OIDC.

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

Аутентификация на основе идентификации

Просмотр журналов аутентификации Access

Чтобы просмотреть журналы событий аутентификации на основе идентификации:

  1. В Панель управления Cloudflare, перейдите в Zero Trust > Insights > Журналы.

  2. Выберите Журналы аутентификации Access.

  3. (Необязательно) Отфильтруйте журналы, отображаемые в инструменте просмотра журналов. Вы можете фильтровать журналы по временной метке и деталям события (например, приложению Access, электронной почте пользователя, решению политики и другим параметрам).

  4. Выберите отдельную временную метку, чтобы изучить событие подробнее.

Журналы аутентификации Access Конечная точка API предоставляет пользовательский URL для экспорта событий журнала аудита вашего аккаунта.

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
  • Access: Audit Logs Read
Получение журналов аутентификации Access
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/logs/access_requests?limit=25&direction=desc&since=2020-07-01T05%3A20%3A00Z&until=2020-10-01T05%3A20%3A00Z" \
	--request GET \
	--header "X-Auth-Email: $CLOUDFLARE_EMAIL" \
	--header "X-Auth-Key: $CLOUDFLARE_API_KEY"
Ответ
{
	"success": true,
	"errors": [],
	"messages": [],
	"result": [
		{
			"user_email": "[email protected]",
			"ip_address": "198.41.129.166",
			"app_uid": "df7e2w5f-02b7-4d9d-af26-8d1988fca630",
			"app_domain": "test.example.com/admin",
			"action": "login",
			"connection": "saml",
			"allowed": false,
			"created_at": "2014-01-01T05:20:00.12345Z",
			"ray_id": "187d944c61940c77"
		}
	]
}

Описание полей

Журналы аутентификации на основе идентификации содержат следующие поля:

Основная информация
Поле Описание
App Название приложения Access.
Email пользователя Адрес электронной почты аутентифицируемого пользователя.
User ID Уникальный идентификатор (UUID) аутентифицирующегося пользователя.
IP-адрес IP-адрес аутентифицируемого пользователя.
App UID Уникальный идентификатор (UUID) приложения Access.
Домен приложения URL of the Access application.
тип приложения Задает тип приложения Access: self-hosted, browser SSH, browser VNC, browser RDP, SaaS или infrastructure.
Событие Type of authentication event, such as a login attempt.
Подключение Поставщик идентификации, используемый для аутентификации (например, saml, onetimepin, google-apps).
Allow Была ли попытка аутентификации разрешена (true) или отклонён (false).
Время запроса Отметка времени события аутентификации.
Ray ID Уникальный идентификатор для каждого запроса через Cloudflare. Полезен для отслеживания конкретного запроса в логах Cloudflare.
Страна Страна, связанная с IP-адресом пользователя.
Приложения Infrastructure

Cloudflare Access регистрирует следующую информацию, когда пользователь проходит аутентификацию в инфраструктурное приложение:

Поле Описание
Имя хоста Имя хоста целевого объекта инфраструктуры.
ID цели UUID of the infrastructure target.
Пользователь SSH Пользователь UNIX, например root, которые указал аутентифицирующийся пользователь при подключении к целевому объекту инфраструктуры.
Журналы SSH SSH-команды, которые пользователь выполнил на целевом объекте. Требует настройки Ключ шифрования SSH до начала сеанса.

Неидентификационная аутентификация

Чтобы получить журналы событий аутентификации без привязки к удостоверению пользователя, используйте GraphQL Analytics API. Эти журналы недоступны на панели управления Cloudflare One.

Журналы для каждого запроса

Пользователи, прошедшие аутентификацию через Access, имеют доступ к разрешённым путям URL в течение своей сессии. Cloudflare предоставляет несколько способов аудита этих запросов.

Использование Cloudflare Logs

Клиенты с планом Enterprise имеют доступ к подробным журналам запросов в своей панели управления Cloudflare. Клиенты с планом Enterprise также имеют доступ к сервису Cloudflare Logpush, который можно настроить в панели управления Cloudflare или через API. Дополнительные сведения о логировании HTTP и инфраструктуры Cloudflare см. в Cloudflare Logs.

Как только участник вашей команды проходит аутентификацию для доступа к HTTP-ресурсу за Access, Cloudflare создаёт JSON Web Token (JWT) для этого пользователя, который содержит его SSO-идентификацию. Cloudflare подписывает этот токен с помощью RS256 (алгоритм подписи RSA с SHA-256), асимметричного алгоритма, и предоставляет открытый ключ, чтобы вы могли проверить подлинность токена.

Когда пользователь запрашивает URL-адрес, Access добавляет к запросу заголовок с личностью пользователя из этого токена, и Cloudflare записывает это в журнал по мере прохождения запроса через сеть. Ваша команда может собирать эти журналы в стороннем ПО для управления информацией и событиями безопасности (SIEM) или в выбранном вами хранилище логов, используя Cloudflare Logpush. Если этот параметр включен вместе с полем идентификации пользователя Access, журналы экспортируются в ваши системы в формате JSON, аналогичном примеру ниже.

{
   "ClientIP": "198.51.100.206",
   "ClientRequestHost": "jira.widgetcorp.tech",
   "ClientRequestMethod": "GET",
   "ClientRequestURI": "/secure/Dashboard/jspa",
   "ClientRequestUserAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36",
   "EdgeEndTimestamp": "2019-11-10T09:51:07Z",
   "EdgeResponseBytes": 4600,
   "EdgeResponseStatus": 200,
   "EdgeStartTimestamp": "2019-11-10T09:51:07Z",
   "RayID": "5y1250bcjd621y99",
   "RequestHeaders":{"cf-access-user":"srhea"}
},
{
   "ClientIP": "198.51.100.206",
   "ClientRequestHost": "jira.widgetcorp.tech",
   "ClientRequestMethod": "GET",
   "ClientRequestURI": "/browse/EXP-12",
   "ClientRequestUserAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36",
   "EdgeEndTimestamp": "2019-11-10T09:51:27Z",
   "EdgeResponseBytes": 4570,
   "EdgeResponseStatus": 200,
   "EdgeStartTimestamp": "2019-11-10T09:51:27Z",
   "RayID": "yzrCqUhRd6DVz72a",
   "RequestHeaders":{"cf-access-user":"srhea"}
}

С помощью cf-access-user поле

Помимо полей HTTP-запроса, доступных в логировании Cloudflare Enterprise, запросы к приложениям, размещенным за Access, включают cf-access-user поле, которое содержит строку идентификации пользователя. Это ещё один инструмент для аудита поведения пользователей. Чтобы добавить cf-access-user поле в журналы HTTP-запросов, его нужно добавить как пользовательское поле. См. Пользовательские поля с инструкциями.

Обратите внимание, что Access регистрирует не все взаимодействия. Журналы аудита по каждому запросу могут показывать, что определенный пользователь посетил domain.com/admin и затем domain.com/admin/panel, но в журналах фиксируются только те действия, которые приводят к новому HTTP-запросу. Действия, выполняемые исключительно на стороне клиента и не создающие запросов к серверу, в журнал не попадают.