
# 接続のサブジェクト競合を一覧表示

`GET /v1/connections/{connection_id}/subject-conflicts` · 権限 `users:read`

エンタープライズ（SAML または OIDC）接続の SSO サブジェクト競合を、新しいものから順に一覧表示します。

サブジェクト競合は、ID プロバイダが、同じ接続に別のサブジェクトで既にリンクされているユーザーの検証済みメールアドレスを持つ**新しいサブジェクト**を送信したときに記録されます。これは、たとえば退職した従業員のメールボックスが新しい従業員に割り当てられた場合に発生します。KeenAuth は新しいサブジェクトを自動的にリンクしません。サインインは `sso_subject_conflict` で拒否され、管理者が[解決](resolve-subject-conflict.md)できるようにレコードが作成されます。

- レコードがオープンしている間、同じサブジェクトによる追加のサインインは、新しいレコードを作成せず、そのレコードを更新します。
- オープンしているレコードは、作成から 30 日後に期限切れになります。
- レコードには、外部サブジェクトもメールアドレスも含まれません。

レコードはユーザーアカウントに関するものなので、権限は `users:read` です。解決には `users:write` が必要です。

## リクエスト

| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
| `connection_id` | path | はい | 接続 ID（`conn_…`）。 |
| `limit` | query | いいえ | ページサイズ（1〜100、デフォルトは 20）。 |
| `after` / `before` | query | いいえ | `list_metadata` のカーソル。カーソルは、それを生成した接続に対してのみ有効です。 |
| `order` | query | いいえ | 作成日時による `desc`（デフォルト）または `asc`。 |

## レスポンス

`200 OK`:

```json
{
  "data": [
    {
      "id": "sscf_01j9xr4a6b8c0d2e4f6g8h0j2k",
      "connection_id": "conn_01j9xp6q0r1s5t7v9w1x3y5z7b",
      "user_id": "usr_01j9xm2n4p6q8r0s2t4v6w8x0y",
      "status": "open",
      "resolution": null,
      "created_at": "2026-10-28T10:00:00Z",
      "last_seen_at": "2026-10-28T10:05:00Z",
      "expires_at": "2026-11-27T10:00:00Z",
      "closed_at": null
    }
  ],
  "list_metadata": { "before": null, "after": null }
}
```

| フィールド | 説明 |
|---|---|
| `user_id` | 検証済みメールアドレスを所有し、同じ接続に別のサブジェクトで既にリンクされているユーザー。 |
| `status` | `open`（判断待ち）、`resolved`（解決済み）、または `expired`（判断がないまま、オープンから 30 日後に終了）。 |
| `resolution` | `same_person` または `different_person`。`status` が `resolved` の場合にのみ設定されます。 |
| `last_seen_at` | 新しいサブジェクトによる最新のサインイン試行。 |
| `closed_at` | レコードが解決または期限切れになった日時。オープンの間は `null` です。期限切れのレコードでも `null` が表示されることがあります。 |

## エラー

| HTTP | code | 発生条件 |
|---|---|---|
| 400 | `invalid_cursor` | カーソルの形式が不正であるか、別の接続またはクエリに属しています。 |
| 401 | `unauthenticated` | 認証情報がない、無効である、または取り消されています。 |
| 403 | `insufficient_permissions` | 認証情報に `users:read` 権限がありません。 |
| 404 | `not_found` | この環境に接続が存在しません。 |
| 422 | `validation_failed` | クエリパラメータが無効です（例: `limit` が 100 を超えている）。 |
| 429 | `rate_limited` | レート制限を超えました。`Retry-After` の期間を経過してから再試行してください。 |
| 503 | `service_unavailable` | 依存先が一時的に利用できません。`Retry-After` の期間を経過してから再試行してください。 |

## 例

```bash
curl "https://api.eu.keenauth.com/v1/connections/conn_01j9xp6q0r1s5t7v9w1x3y5z7b/subject-conflicts?limit=20" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

```bash
keenauth connections subject-conflicts list conn_01j9xp6q0r1s5t7v9w1x3y5z7b --limit 20
```
