接続のサブジェクト競合を一覧表示
GET /v1/connections/{connection_id}/subject-conflicts · 権限 users:read
エンタープライズ(SAML または OIDC)接続の SSO サブジェクト競合を、新しいものから順に一覧表示します。
サブジェクト競合は、ID プロバイダが、同じ接続に別のサブジェクトで既にリンクされているユーザーの検証済みメールアドレスを持つ新しいサブジェクトを送信したときに記録されます。これは、たとえば退職した従業員のメールボックスが新しい従業員に割り当てられた場合に発生します。KeenAuth は新しいサブジェクトを自動的にリンクしません。サインインは sso_subject_conflict で拒否され、管理者が解決できるようにレコードが作成されます。
- レコードがオープンしている間、同じサブジェクトによる追加のサインインは、新しいレコードを作成せず、そのレコードを更新します。
- オープンしているレコードは、作成から 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:
{
"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 の期間を経過してから再試行してください。 |
例
curl "https://api.eu.keenauth.com/v1/connections/conn_01j9xp6q0r1s5t7v9w1x3y5z7b/subject-conflicts?limit=20" \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
keenauth connections subject-conflicts list conn_01j9xp6q0r1s5t7v9w1x3y5z7b --limit 20