ユーザーにフェデレーテッド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における個人データでは、保存される内容、保持期間、削除方法を説明しています。いずれのフィールドにも、特別な種類の個人データ(健康、生体情報、宗教、政治的意見、性的指向)を送信しないでください。