> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# События аутентификации и webhooks в Didit

> Как события входа попадают в консоль Didit: сводка и хронология входов, представления мошенничества, правила событий и webhooks auth.*.

> [!WARNING]
>
> Аутентификация является новой функцией. Didit включает доставку событий для вашего приложения. Действия правил, которые выполняют выход из системы или блокировку человека, пока не активны: правило, которое их использует, фиксирует действие, но не применяет его.

Didit Authentication автоматически отправляет в Didit собственную активность. Вам не нужно отправлять события входа самостоятельно. Каждое событие привязывается к человеку с тем же `vendor_data`, рядом с его верификациями и транзакциями.

Не отправляйте также собственные события `auth.login` на [`/v3/events/`](https://docs.didit.me/ru/transaction-monitoring/events) для тех же входов. Они будут сохранены дважды, и при этом не обновят сводку входов человека и не отправят вебхуки `auth.*`.

## Что отправляется

| Активность входа | Сохраняется как | Webhook |
| - | - | - |
| Регистрация | `auth.signup` | `auth.signup` |
| Вход | `auth.login` | `auth.login` |
| Неудачный вход | `auth.login_failed` | `auth.login_failed` |
| Выход или отзыв сессии | `auth.logout` | Нет |
| Запрос на сброс пароля | `auth.password_forgot` | `auth.password_reset_requested` |
| Сброс пароля | `auth.password_reset` | `auth.password_reset_completed` |
| Пароль изменён | `security.password_changed` | Нет |
| Аутентификатор добавлен или изменён | `security.mfa_changed` | `auth.mfa_changed` |
| Вход с нового устройства | `security.device_changed` | `auth.new_device` |
| Аккаунт заблокирован или добавлен в список блокировки | `security.account_locked` | `auth.account_locked` |
| Доступ агента одобрен или отозван | `security.agent_access_approved`, `security.agent_access_revoked` | Нет |

Решения [защиты от ботов](https://docs.didit.me/ru/authentication/bot-protection.md) (`attempt_challenged`, `attempt_blocked` и другие) также сохраняются как события `auth.*`, поэтому они появляются на временной шкале.

Новое устройство: это устройство, которое не совпадает ни с одним ID устройства и ни с одним fingerprint, с которых человек входил раньше.

Каждое событие содержит:

* способ входа `method` (например, `password` или `passkey`) и `reason` для неудач и блокировок,
* IP-адрес и контекст устройства: постоянный ID устройства, fingerprint устройства, пользовательский агент и оценку бота, если клиент её передал,
* ID сессии.

Неудачный вход с неизвестным или не подтверждённым идентификатором не имеет `vendor_data`. Didit никогда не получает сам идентификатор, только его хеш с ключом. Такие попытки никогда не связываются с человеком, но представления для выявления мошенничества ниже всё равно учитывают их по каждому аккаунту.

## Где их просматривать

### Профиль человека

Каждый человек получает сводку по входу. Она отображается в списке и профиле **People** и возвращается в [`/v3/users/`](https://docs.didit.me/ru/management-api/users/list) как `authentication`:

```json theme={null}
{
  "authentication": {
    "status": "ACTIVE",
    "methods": ["password", "passkey"],
    "mfa_enabled": true,
    "last_sign_in_at": "2026-10-14T09:12:44Z"
  }
}
```

* `status` принимает значения `ACTIVE`, `LOCKED` (заблокирован политикой безопасности) или `BLOCKED` (заблокирован вашей командой).
* `authentication` равно `null` для человека без идентификатора для входа.
* Вы можете фильтровать список **People** по статусу входа, способу входа (включая «none») и MFA.

### События и временная шкала

События входа отображаются на странице **Events** в консоли и на вкладке **Events** у каждого человека. Для их чтения нужно разрешение `list:transactions` или `read:authentication`. При открытии события входа показываются устройство и сеть, причина защиты (например, `bots`, `stuffing`, `brute`, `vpn`, `travel` или `attack_mode`) и правила, которым оно соответствовало.

### Представления для выявления мошенничества

На странице **Events** есть готовые представления, которые объединяют входы с остальной активностью человека:

| Представление | Что находит |
| - | - |
| Одно устройство, несколько людей | 3 или более человек с одним fingerprint устройства за 7 дней. |
| Всплеск неудачных входов | Один публичный IP с 10 или более неудачными входами на 3 или более аккаунтах (по умолчанию за 24 часа), с указанием 30-минутного интервала наибольшей активности. |
| Новое устройство, затем выплата | Вход с устройства, которое не встречалось за 90 дней, а затем вывод средств или исходящая транзакция в течение 15 минут. |
| Пароль изменён, затем транзакция | Исходящая транзакция в течение 30 минут после смены пароля. |
| Много сессий с одного IP | 3 или более сессий верификации для 3 или более человек за 48 часов. |

Представления анализируют данные за период до 31 дня.

## Правила событий

События входа проходят через те же [правила событий](https://docs.didit.me/ru/transaction-monitoring/event-rules.md), что и остальные ваши события. Набор **Мошенничество с аутентификацией** содержит четыре пресета:

| Пресет | Срабатывает | Действия |
| - | - | - |
| Захват аккаунта | Изменение пароля или MFA после 3 или более неудачных входов и нового устройства в течение 1 часа. | Отклонить (оценка 90), добавить тег, выполнить выход, заблокировать |
| Подбор учётных данных | Успешный вход с IP с 10 или более неудачами на 3 или более аккаунтах в течение 1 часа. | Отправить на проверку (оценка 60), добавить тег, выполнить выход |
| Новое устройство, затем выплата | Вывод средств в течение 15 минут после нового устройства. | Отправить на проверку (оценка 60), добавить тег, выполнить выход |
| Невозможное перемещение | Более 500 км между входами при скорости более 1 000 км/ч. | Отправить на проверку (оценка 50), добавить тег, выполнить выход |

Полезные поля для ваших правил включают `event.category`, `event.action_type`, `event.payload.method`, `event.payload.reason`, `event.security.changed_field`, `event.device.fingerprint`, `event.device.persistent_device_id`, `event.device.bot_score`, `event.ip.is_vpn_or_tor`, `event.ip.is_data_center`, `event.ip.country`, `event.ip.travel_distance_km` и `event.ip.travel_speed_kmh`.

Правила событий содержат два действия, которые применимы только к событиям входа: **Выполнить выход человека из всех сессий** и **заблокировать человеку вход**. Они пока не активны. До их активации правило фиксирует их со статусом `DISABLED` и не применяет. Остальные действия (оценка, статус, теги, заметки, списки и кейсы) работают как обычно.

## Webhooks

Настройте для [адреса назначения webhook](https://docs.didit.me/ru/integration/webhooks.md) подписку на нужные типы `auth.*`. Только адреса назначения с такой подпиской получают эти события. Чтобы отправить образец каждого типа, используйте **Try Webhook** в консоли.

```json auth.new_device theme={null}
{
  "webhook_type": "auth.new_device",
  "event_id": "0b6f2a71-3c4d-4e5f-8a9b-0c1d2e3f4a5b",
  "application_id": "11111111-2222-3333-4444-555555555555",
  "environment": "live",
  "timestamp": 1760433164,
  "created_at": 1760433164,
  "vendor_user_id": "8f0c3a52-4b7e-4a51-9a56-1f2d3c4b5a69",
  "vendor_data": "user-1234",
  "auth_event": {
    "event_id": "auth:3d0f1c2e-7a8b-4c5d-9e0f-1a2b3c4d5e6f",
    "event_uuid": "5b6c7d8e-9f01-4a2b-8c3d-4e5f60718293",
    "type": "security.device_changed",
    "method": "passkey",
    "reason": null,
    "occurred_at": "2026-10-14T09:12:44+00:00",
    "ip_address": "203.0.113.10",
    "device": {
      "fingerprint": "fp_7f3a",
      "label": "Chrome on Android",
      "persistent_device_id": "dev_4c21"
    }
  },
  "authentication": {
    "status": "ACTIVE",
    "methods": ["passkey"],
    "mfa_enabled": true,
    "last_sign_in_at": "2026-10-14T09:12:44Z"
  }
}
```

* Для дедупликации используйте `auth_event.event_id`, собственный ID события входа: он остаётся тем же при каждой доставке этого события. `auth_event.event_uuid` позволяет прочитать сохранённое событие через `GET /v3/events/{event_uuid}/`.
* `vendor_data`, `vendor_user_id` и `authentication` равны `null` для попытки, которая не указывает известного человека.
* Проверяйте подпись так же, как для любого webhook Didit (см. [webhooks](https://docs.didit.me/ru/integration/webhooks.md)).

## Биллинг

События аутентификации не тарифицируются за каждое событие. Аутентификация тарифицируется по ежемесячным активным пользователям.

## События, принадлежащие вашему приложению

Для действий, которые происходят в вашем продукте, например при изменении профиля или запросе на выплату, отправляйте события самостоятельно: с вашего сервера (`POST /v3/events/` с `x-api-key`) или с устройства с помощью токена мониторинга с ограниченной областью действия. См. [события](https://docs.didit.me/ru/transaction-monitoring/events.md) и [отправка событий через SDK](https://docs.didit.me/ru/transaction-monitoring/sdk-event-submission.md). Используйте `vendor_data` пользователя из его токена доступа.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.