> ## 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.

# 認証イベントとWebhook

> Didit Authenticationのサインイン活動がコンソールに届く仕組みを解説。本人のサインイン概要とタイムライン、不正検知ビュー、イベントルール、auth.* Webhookを紹介します。

> [!WARNING]
>
> Authenticationは新しい機能です。Diditがお客様のアプリケーションでイベント配信を有効にします。ユーザーをサインアウトさせるルールアクションとブロックするルールアクションはまだ有効ではありません。これらを使用するルールはアクションを記録しますが、適用はしません。

Didit Authenticationは、自身のアクティビティを自動的にDiditへ送信します。サインインイベントをお客様自身で送信する必要はありません。各イベントは同じ`vendor_data`を持つユーザーに紐付けられ、そのユーザーの認証や取引と並んで表示されます。

同じサインインについて、お客様独自の`auth.login`イベントを[`/v3/events/`](https://docs.didit.me/ja/transaction-monitoring/events)へ重ねて送信しないでください。イベントが二重に保存されるうえ、それらのイベントではユーザーのサインイン概要は更新されず、`auth.*` Webhookも送信されません。

## 送信される内容

| サインインのアクティビティ | 保存形式 | 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/ja/authentication/bot-protection.md)の判定(`attempt_challenged`、`attempt_blocked`など)も`auth.*`イベントとして保存されるため、タイムラインに表示されます。

新しいデバイスとは、そのユーザーが過去にサインインしたデバイスIDとも、フィンガープリントとも一致しないデバイスのことです。

各イベントには次の情報が含まれます。

* サインインの`method`(例:`password`、`passkey`)、および失敗やロックの場合はその`reason`
* IPアドレスとデバイスのコンテキスト:永続的なデバイスID、フィンガープリント、ユーザーエージェント、およびクライアントが送信した場合はボットスコア
* セッションID

不明な識別子や未検証の識別子によるサインインの失敗には、`vendor_data`がありません。Diditが識別子そのものを受け取ることはなく、受け取るのはその鍵付きハッシュのみです。こうした試行がユーザーに紐付けられることはありませんが、後述の不正検知ビューではアカウントごとに集計されます。

## 確認できる場所

### ユーザーのプロフィール

各ユーザーにはサインイン概要が作成され、**ユーザー**の一覧とプロフィールに表示されるほか、[`/v3/users/`](https://docs.didit.me/ja/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`(お客様のチームによるブロック)のいずれかです。
* サインインIDを持たないユーザーの場合、`authentication`は`null`になります。
* **ユーザー**は、サインインのステータス、サインイン方法(「なし」を含む)、MFAでフィルターできます。

### イベントとタイムライン

サインインイベントは、コンソールの**イベント**ページと、各ユーザーの**イベント**タブに表示されます。閲覧するには`list:transactions`または`read:authentication`の権限が必要です。サインインイベントを開くと、そのデバイスとネットワーク、保護の理由(例:`bots`、`stuffing`、`brute`、`vpn`、`travel`、`attack_mode`)、および一致したルールが表示されます。

### 不正検知ビュー

**イベント**ページには、サインインとユーザーのその他のアクティビティを組み合わせた、あらかじめ用意されたビューがあります。

| ビュー | 検出する内容 |
| - | - |
| 1台のデバイスに複数のユーザー | 7日以内に1つのデバイスフィンガープリントで3人以上のユーザー。 |
| サインイン失敗の急増 | 1つのパブリックIPから3つ以上のアカウントに対する10回以上のサインイン失敗(デフォルトは24時間)と、その中で最も集中した30分間。 |
| 新しいデバイスの後に出金 | 過去90日間に確認されていないデバイスからのサインインの後、15分以内の出金または送金取引。 |
| パスワード変更の後に取引 | パスワード変更から30分以内の送金取引。 |
| 1つのIPから多数のセッション | 48時間以内に3人以上のユーザーに対する3件以上の認証セッション。 |

ビューは最大31日前までさかのぼります。

## イベントルール

サインインイベントは、その他のイベントと同じ[イベントルール](https://docs.didit.me/ja/transaction-monitoring/event-rules.md)で処理されます。**Authentication fraud**バンドルには4つのプリセットがあります。

| プリセット | 一致条件 | アクション |
| - | - | - |
| アカウント乗っ取り | 1時間以内に3回以上のサインイン失敗と新しいデバイスがあった後の、パスワードまたはMFAの変更。 | 却下(スコア90)、タグ付け、サインアウト、ブロック |
| クレデンシャルスタッフィング | 1時間以内に3つ以上のアカウントで10回以上の失敗があったIPからの、サインインの成功。 | レビュー(スコア60)、タグ付け、サインアウト |
| 新しいデバイスの後に出金 | 新しいデバイスの検出から15分以内の出金。 | レビュー(スコア60)、タグ付け、サインアウト |
| ありえない移動 | サインイン間の距離が500km超、かつ速度が1,000km/h超。 | レビュー(スコア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`があります。

イベントルールには、サインインイベント専用のアクションが2つあります。**Sign the person out of every session**と**Block the person from signing in**です。これらはまだ有効ではありません。有効になるまでは、ルールはこれらのアクションをステータス`DISABLED`で記録し、適用はしません。その他のアクション(スコア、ステータス、タグ、メモ、リスト、ケース)は通常どおり機能します。

## Webhook

必要な`auth.*`タイプに[Webhookの送信先](https://docs.didit.me/ja/integration/webhooks.md)を登録してください。これらを受信するのは登録済みの送信先のみです。コンソールの**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"
  }
}
```

* 重複排除には、サインインイベント自体のIDである`auth_event.event_id`を使用してください。このIDは、そのイベントのすべての配信で同じです。`auth_event.event_uuid`を使うと、保存されたイベントを`GET /v3/events/{event_uuid}/`で取得できます。
* 既知の人物を指定しない試行では、`vendor_data`、`vendor_user_id`、`authentication`は`null`になります。
* すべてのDidit Webhookと同様に、署名を検証してください([Webhook](https://docs.didit.me/ja/integration/webhooks.md)を参照)。

## 請求

認証イベントはイベント単位では請求されません。認証は月間アクティブユーザー数に基づいて請求されます。

## アプリケーションが管理するイベント

プロフィールの変更や支払いリクエストなど、自社プロダクト内で発生するアクションについては、サーバーから(`x-api-key`を付けて`POST /v3/events/`を呼び出す)、またはスコープ付きのモニタリングトークンを使ってデバイスから、イベントを自分で送信してください。[イベント](https://docs.didit.me/ja/transaction-monitoring/events.md)と[SDKによるイベント送信](https://docs.didit.me/ja/transaction-monitoring/sdk-event-submission.md)を参照してください。その人物のアクセストークンに含まれる`vendor_data`を使用してください。


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