ユーザーにフェデレーテッドIDを紐付ける
POST /v1/users/{user_id}/identities · 権限 users:write
フェデレーテッドID(ソーシャル、SAML、OIDC接続の外部サブジェクト)をユーザーに紐付け、そのユーザーがその接続でサインインできるようにします。linked_via は常に admin_api です。接続は、この環境の有効な接続であり、その種類が type と一致している必要があります。同じIDがこのユーザーまたは別のユーザーにすでに紐付けられている場合、リクエストは 409 で失敗し、所有者は明らかにされません。外部サブジェクトは個人データであり、暗号化して保存され、返却されることはありません。また、管理監査レコード user.identity_linked(アクター: APIキー)にも含まれません。2人のユーザーの統合(source_user_id)は利用できません。未知のフィールドは 400 unknown_field を返します。
リクエスト
| パラメーター | 位置 | 必須 | 説明 |
|---|---|---|---|
user_id |
パス | はい | ユーザーID。usr_ で始まります。 |
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
type |
文字列 | はい | social、saml、oidc のいずれか。接続と一致している必要があります(ソーシャル接続には social、同じstrategyのエンタープライズ接続には saml または oidc)。 |
connection_id |
文字列 | はい | 接続ID。conn_ で始まります。 |
subject |
文字列 | はい | ID プロバイダ上の外部サブジェクト(OIDC の sub、SAML の NameID)。UTF-8で1024バイト以内。 |
レスポンス
201 Created と、新しいIDを返します。形式は GET /v1/users/{user_id}/identities が返すものと同じです。
{
"id": "idn_0a1b2c3d4e5f6g7h8j9k0m1n2r",
"type": "oidc",
"connection_id": "conn_0a1b2c3d4e5f6g7h8j9k0m1n2s",
"provider": null,
"linked_via": "admin_api",
"created_at": "2026-01-15T09:30:00Z"
}
エラー
すべてのエラーは、安定した code を含む application/problem+json のボディで返されます。
| HTTP | code |
発生条件 |
|---|---|---|
| 400 | malformed_request、unknown_field |
ボディが有効なJSONではないか、未知のフィールドが含まれています。 |
| 409 | conflict |
IDがすでにユーザーに紐付けられています(errors[]: identity_already_linked)。または、ユーザーがユーザーごとのID上限に達しています(errors[]: identity_limit_reached)。 |
| 415 | unsupported_media_type |
Content-Type: application/json なしでボディが送信されました。 |
| 422 | validation_failed |
フィールドが欠けているか無効です(/type、/connection_id、/subject)。または、接続が type に一致するこの環境の有効な接続ではありません(errors[]: /connection_id、connection_unavailable)。 |
| 404 | not_found |
ユーザーがこの環境に存在しないか、削除中であるか、IDの形式が不正です。 |
| 401 | unauthenticated |
APIキーが未指定、無効、または取り消し済みです。 |
| 403 | insufficient_permissions |
キーに users:write 権限がありません。 |
| 429 | rate_limited |
レート制限を超えました。Retry-After に従ってください。 |
| 503 | service_unavailable |
依存サービスが一時的に利用できません。後で再試行してください。 |
例
curl -X POST https://api.eu.keenauth.com/v1/users/usr_0a1b2c3d4e5f6g7h8j9k0m1n2p/identities \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"type": "oidc", "connection_id": "conn_0a1b2c3d4e5f6g7h8j9k0m1n2s", "subject": "248289761001"}'
個人データ
このエンドポイントは個人データ(紐付けられたID)を扱います。KeenAuth APIにおける個人データでは、保存される内容、保持期間、削除方法を説明しています。いずれのフィールドにも、特別な種類の個人データ(健康、生体情報、宗教、政治的意見、性的指向)を送信しないでください。