パブリック API 仕様
テナントのリソース(利用ユーザ・OIDC アプリ・テナント設定)をプログラムから操作する REST API です。外部システム連携や自動化にご利用ください。
概要
管理コンソールのオリジン配下 /api/v1 で提供する JSON over HTTPS の REST API です。エンドポイントはパスバージョニング(/api/v1/...)を用います。
- ベース URL
https://(管理コンソールのオリジン)/api/v1- 形式
- リクエスト・レスポンスとも JSON(UTF-8)。
- 認証
- API キー(Bearer)。
- レート制限
- 現時点では設けていません(将来拡張)。
事前準備
利用開始には、管理コンソールで次の 2 つが必要です(テナント設定 > 「API キー」タブ)。
- REST API 経路を有効化する(既定は無効。 無効の間は有効なキーでもアクセスできません)。
- API キーを発行し、必要なスコープと 有効期限を設定する。平文は発行時に一度だけ表示されます(以降は再表示できません)。
認証
すべてのリクエストに Authorization: Bearer <API キー> ヘッダを付与します。 キーは単一テナントに紐づき、操作は発行元テナントの範囲に限定されます(テナント間のデータは 分離されます)。
curl https://(管理コンソールのオリジン)/api/v1/users \ -H "Authorization: Bearer wfk_xxxxxxxx..."
スコープ(権限)
API キーには、リソースごとに権限レベルを付与します。付与されていないリソース・不足レベルの 操作は拒否されます(最小権限)。レベルは read ⊂ write ⊂ full の階層で、上位は 下位を内包します。
users- 利用ユーザ。read / write / full。
oidc-apps- OIDC アプリ。read / write / full(full はクライアントシークレット再発行を含む)。
tenant-settings- テナント設定。read / write のみ(作成・削除が無いため full はありません)。
- read
- 参照(一覧・取得)。
- write
- read に加え、作成・更新(利用ユーザの状態切替を含む。削除は不可)。
- full
- write に加え、削除。OIDC アプリではクライアントシークレット再発行を含む。
ページング・フィルタ
一覧はカーソルページングに対応します。?limit=(1〜100・既定 50)と?cursor= を指定し、応答の nextCursor(最終ページではnull)を次リクエストの cursor に渡します。利用ユーザ一覧は?status=active|disabled と ?q=(表示名・メールの部分一致)で 絞り込めます。
{
"items": [ /* ... */ ],
"nextCursor": "eyJ0..." // 最終ページでは null
}エンドポイント
利用ユーザ
| メソッド | パス | 必要スコープ | 説明 |
|---|---|---|---|
| GET | /api/v1/users | users:read | 一覧(フィルタ・ページング対応) |
| POST | /api/v1/users | users:write | 作成 |
| GET | /api/v1/users/{id} | users:read | 取得 |
| PATCH | /api/v1/users/{id} | users:write | 更新(部分更新・状態切替) |
| DELETE | /api/v1/users/{id} | users:full | 削除 |
OIDC アプリ
| メソッド | パス | 必要スコープ | 説明 |
|---|---|---|---|
| GET | /api/v1/oidc-apps | oidc-apps:read | 一覧 |
| POST | /api/v1/oidc-apps | oidc-apps:write | 作成(応答に clientSecret を一度だけ含む) |
| GET | /api/v1/oidc-apps/{id} | oidc-apps:read | 取得 |
| PATCH | /api/v1/oidc-apps/{id} | oidc-apps:write | 更新(部分更新) |
| DELETE | /api/v1/oidc-apps/{id} | oidc-apps:full | 削除 |
| POST | /api/v1/oidc-apps/{id}/secret | oidc-apps:full | クライアントシークレット再発行(二段階確認) |
テナント設定
| メソッド | パス | 必要スコープ | 説明 |
|---|---|---|---|
| GET | /api/v1/tenant-settings | tenant-settings:read | 自テナント設定の取得 |
| PATCH | /api/v1/tenant-settings | tenant-settings:write | 自テナント設定の更新 |
二段階確認(クライアントシークレット再発行)
不可逆な操作であるクライアントシークレット再発行のみ、二段階確認が必要です(oidc-apps:full)。削除などその他の操作に二段階確認はありません。
POST /api/v1/oidc-apps/{id}/secretを本文なしで呼ぶと、影響の プレビューとconfirmationTokenが返ります(202)。- 同じトークンを本文に添えて再度呼ぶと、確定・実行され新しい
clientSecretが 返ります(200)。トークンは短時間のみ有効です。
# 1) プレビュー + 確認トークン
POST /api/v1/oidc-apps/{id}/secret
→ 202 { "preview": { ... }, "confirmationToken": "..." }
# 2) 確定
POST /api/v1/oidc-apps/{id}/secret
{ "confirmationToken": "..." }
→ 200 { "clientSecret": "secret_..." }エラーとステータスコード
エラー応答は統一形式です。details は省略される場合があります。
{
"error": {
"code": "FORBIDDEN",
"message": "権限が不足しています"
}
}- 200 / 201 / 204
- 成功(取得・更新 / 作成 / 削除)。
- 202
- シークレット再発行の第1段階。プレビューと確認トークンを返す。
- 400
- 入力不正(
INVALID_INPUT)/確認トークン無効・期限切れ(INVALID_CONFIRMATION)。 - 401
- 認証失敗(
UNAUTHENTICATED)。キー無し・不正・失効・期限切れ。 - 403
- スコープ不足(
FORBIDDEN)/REST 経路が無効(ROUTE_DISABLED)。 - 404
- 対象が存在しない、または他テナントのリソース(
NOT_FOUND)。