EndUserユーザー管理
概要
EndUserユーザー管理APIは、テナント内のエンドユーザーアカウントを管理するためのエンドポイントを提供します。ユーザーの作成、更新、削除に加え、停止やロック、匿名化などの操作が可能です。
エンドポイント一覧
| メソッド | エンドポイント | 説明 |
|---|---|---|
| GET | /api/admin/users | ユーザー一覧取得 |
| GET | /api/admin/users/:id | ユーザー詳細取得 |
| POST | /api/admin/users | ユーザー作成 |
| PUT | /api/admin/users/:id | ユーザー更新 |
| DELETE | /api/admin/users/:id | ユーザー削除 |
| POST | /api/admin/users/:id/suspend | ユーザー停止 |
| POST | /api/admin/users/:id/unsuspend | ユーザー停止解除 |
| POST | /api/admin/users/:id/lock | ユーザーロック |
| POST | /api/admin/users/:id/unlock | ユーザーロック解除 |
| POST | /api/admin/users/:id/anonymize | ユーザー匿名化 |
| POST | /api/admin/users/:id/retry-pii | PII同期リトライ |
| DELETE | /api/admin/users/:id/pii | PII削除 |
ユーザー一覧取得
テナント内のユーザー一覧を取得します。
エンドポイント
GET /api/admin/users
クエリパラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
limit | integer | - | 取得件数(デフォルト: 20、最大: 100) |
cursor | string | - | ページネーションカーソル |
search | string | - | 検索クエリ(メール、名前) |
status | string | - | ステータスフィルタ(active, suspended, locked) |
role | string | - | ロールフィルタ |
created_after | integer | - | 作成日時(UNIXタイムスタンプ)以降 |
created_before | integer | - | 作成日時(UNIXタイムスタンプ)以前 |
リクエスト例
curl -X GET "https://{tenant-domain}/api/admin/users?limit=20&status=active" \ -H "Authorization: Bearer {token}"レスポンス例
{ "items": [ { "id": "usr_abc123", "name": "山田 太郎", "status": "active", "email_verified": true, "created_at": 1705881600, "updated_at": 1705968000, "last_login_at": 1706054400 } ], "total": 150, "cursor": "eyJpZCI6InVzcl9hYmMxMjMifQ=="}ユーザー詳細取得
指定されたユーザーの詳細情報を取得します。
エンドポイント
GET /api/admin/users/:id
パスパラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
id | string | ○ | ユーザーID |
リクエスト例
curl -X GET "https://{tenant-domain}/api/admin/users/usr_abc123" \ -H "Authorization: Bearer {token}"レスポンス例
{ "id": "usr_abc123", "name": "山田 太郎", "status": "active", "email_verified": true, "phone": "+81-90-1234-5678", "phone_verified": true, "profile": { "picture": "https://example.com/avatar.jpg", "locale": "ja", "timezone": "Asia/Tokyo" }, "metadata": { "department": "Engineering" }, "created_at": 1705881600, "updated_at": 1705968000, "last_login_at": 1706054400, "login_count": 42, "failed_login_attempts": 0}エラーレスポンス
| HTTPステータス | エラーコード | 説明 |
|---|---|---|
| 404 | user_not_found | ユーザーが見つからない |
ユーザー作成
新しいユーザーを作成します。
エンドポイント
POST /api/admin/users
リクエストボディ
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
email | string | ○ | メールアドレス |
name | string | - | 表示名 |
password | string | - | パスワード(指定しない場合は招待メール送信) |
phone | string | - | 電話番号 |
email_verified | boolean | - | メール確認済みとしてマーク |
phone_verified | boolean | - | 電話番号確認済みとしてマーク |
profile | object | - | プロフィール情報 |
metadata | object | - | カスタムメタデータ |
send_welcome_email | boolean | - | ウェルカムメール送信(デフォルト: true) |
リクエスト例
curl -X POST "https://{tenant-domain}/api/admin/users" \ -H "Authorization: Bearer {token}" \ -H "Content-Type: application/json" \ -d '{ "email": "[email protected]", "name": "新規 ユーザー", "password": "SecurePassword123!", "email_verified": true, "profile": { "locale": "ja", "timezone": "Asia/Tokyo" }, "metadata": { "department": "Sales" } }'レスポンス例
{ "id": "usr_xyz789", "name": "新規 ユーザー", "status": "active", "email_verified": true, "created_at": 1706140800, "updated_at": 1706140800}エラーレスポンス
| HTTPステータス | エラーコード | 説明 |
|---|---|---|
| 409 | email_already_exists | メールアドレスが既に使用されている |
| 422 | validation_error | 入力データが不正 |
ユーザー更新
既存のユーザー情報を更新します。
エンドポイント
PUT /api/admin/users/:id
パスパラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
id | string | ○ | ユーザーID |
リクエストボディ
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
email | string | - | メールアドレス |
name | string | - | 表示名 |
phone | string | - | 電話番号 |
email_verified | boolean | - | メール確認状態 |
phone_verified | boolean | - | 電話番号確認状態 |
profile | object | - | プロフィール情報 |
metadata | object | - | カスタムメタデータ |
リクエスト例
curl -X PUT "https://{tenant-domain}/api/admin/users/usr_abc123" \ -H "Authorization: Bearer {token}" \ -H "Content-Type: application/json" \ -d '{ "name": "山田 太郎(更新)", "metadata": { "department": "Marketing" } }'レスポンス例
{ "id": "usr_abc123", "name": "山田 太郎(更新)", "status": "active", "updated_at": 1706227200}ユーザー削除
ユーザーを削除します。
エンドポイント
DELETE /api/admin/users/:id
パスパラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
id | string | ○ | ユーザーID |
リクエスト例
curl -X DELETE "https://{tenant-domain}/api/admin/users/usr_abc123" \ -H "Authorization: Bearer {token}"レスポンス
ステータスコード 204 No Content(ボディなし)
ユーザー停止
ユーザーを一時停止します。停止中のユーザーはログインできません。
エンドポイント
POST /api/admin/users/:id/suspend
パスパラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
id | string | ○ | ユーザーID |
リクエストボディ
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
reason | string | - | 停止理由 |
リクエスト例
curl -X POST "https://{tenant-domain}/api/admin/users/usr_abc123/suspend" \ -H "Authorization: Bearer {token}" \ -H "Content-Type: application/json" \ -d '{ "reason": "利用規約違反" }'レスポンス例
{ "id": "usr_abc123", "status": "suspended", "suspended_at": 1706313600, "suspended_reason": "利用規約違反"}ユーザー停止解除
停止中のユーザーを再度有効にします。
エンドポイント
POST /api/admin/users/:id/unsuspend
リクエスト例
curl -X POST "https://{tenant-domain}/api/admin/users/usr_abc123/unsuspend" \ -H "Authorization: Bearer {token}"レスポンス例
{ "id": "usr_abc123", "status": "active", "unsuspended_at": 1706400000}ユーザーロック
ユーザーをロックします。通常、不正アクセスの疑いがある場合に使用します。
エンドポイント
POST /api/admin/users/:id/lock
リクエスト例
curl -X POST "https://{tenant-domain}/api/admin/users/usr_abc123/lock" \ -H "Authorization: Bearer {token}" \ -H "Content-Type: application/json" \ -d '{ "reason": "不審なログイン試行を検出" }'ユーザーロック解除
ロックされたユーザーを解除します。
エンドポイント
POST /api/admin/users/:id/unlock
リクエスト例
curl -X POST "https://{tenant-domain}/api/admin/users/usr_abc123/unlock" \ -H "Authorization: Bearer {token}"ユーザー匿名化
GDPR等のプライバシー規制に対応するため、ユーザーの個人情報を匿名化します。
エンドポイント
POST /api/admin/users/:id/anonymize
リクエスト例
curl -X POST "https://{tenant-domain}/api/admin/users/usr_abc123/anonymize" \ -H "Authorization: Bearer {token}"レスポンス例
{ "id": "usr_abc123", "status": "anonymized", "anonymized_at": 1706486400}PII同期リトライ
PIIデータベースとの同期に失敗したユーザーに対して、同期をリトライします。
エンドポイント
POST /api/admin/users/:id/retry-pii
リクエスト例
curl -X POST "https://{tenant-domain}/api/admin/users/usr_abc123/retry-pii" \ -H "Authorization: Bearer {token}"レスポンス例
{ "id": "usr_abc123", "pii_sync_status": "synced", "pii_synced_at": 1706572800}PII削除
ユーザーのPII(個人識別情報)のみを削除します。コアデータは保持されます。
エンドポイント
DELETE /api/admin/users/:id/pii
リクエスト例
curl -X DELETE "https://{tenant-domain}/api/admin/users/usr_abc123/pii" \ -H "Authorization: Bearer {token}"レスポンス
ステータスコード 204 No Content(ボディなし)