コンテンツにスキップ

IP許可リスト管理

概要

IP許可リストAPIは、管理コンソールへのアクセスを許可されたIPアドレスのみに制限するためのエンドポイントを提供します。ホワイトリスト方式で動作し、セキュリティを強化します。

必要権限

操作必要権限
読み取りadmin:ip_allowlist:read
書き込みadmin:ip_allowlist:write

エンドポイント一覧

メソッドエンドポイント説明
GET/api/admin/ip-allowlistIP許可リスト取得
GET/api/admin/ip-allowlist/:idIPエントリ詳細取得
POST/api/admin/ip-allowlistIPエントリ追加
PATCH/api/admin/ip-allowlist/:idIPエントリ更新
DELETE/api/admin/ip-allowlist/:idIPエントリ削除
POST/api/admin/ip-allowlist/:id/enableエントリ有効化
POST/api/admin/ip-allowlist/:id/disableエントリ無効化
POST/api/admin/ip-allowlist/checkIP許可チェック

IP許可リスト取得

IP許可リストの一覧を取得します。

エンドポイント

GET /api/admin/ip-allowlist

クエリパラメータ

パラメータ必須説明
include_disabledboolean-無効なエントリも含める(デフォルト: false)

リクエスト例

Terminal window
curl -X GET "https://{tenant-domain}/api/admin/ip-allowlist?include_disabled=true" \
-H "Authorization: Bearer {token}"

レスポンス例

{
"items": [
{
"id": "ip_abc123",
"ip_range": "192.168.1.0/24",
"description": "オフィスネットワーク",
"enabled": true,
"created_at": 1705881600000,
"updated_at": 1706140800000
},
{
"id": "ip_def456",
"ip_range": "10.0.0.0/8",
"description": "VPNネットワーク",
"enabled": true,
"created_at": 1705968000000,
"updated_at": null
},
{
"id": "ip_ghi789",
"ip_range": "203.0.113.50",
"description": "リモートワーク - 山田",
"enabled": false,
"created_at": 1706054400000,
"updated_at": 1706140800000
}
],
"total": 3,
"restriction_active": true
}

IPエントリ詳細取得

指定されたIPエントリの詳細情報を取得します。

エンドポイント

GET /api/admin/ip-allowlist/:id

パスパラメータ

パラメータ必須説明
idstringエントリID

リクエスト例

Terminal window
curl -X GET "https://{tenant-domain}/api/admin/ip-allowlist/ip_abc123" \
-H "Authorization: Bearer {token}"

レスポンス例

{
"id": "ip_abc123",
"ip_range": "192.168.1.0/24",
"description": "オフィスネットワーク",
"enabled": true,
"created_by": "admin_xyz789",
"created_at": 1705881600000,
"updated_at": 1706140800000
}

IPエントリ追加

新しいIPエントリを追加します。

エンドポイント

POST /api/admin/ip-allowlist

リクエストボディ

フィールド必須説明
ip_rangestringIPアドレスまたはCIDR形式
descriptionstring-説明
enabledboolean-有効/無効(デフォルト: true)

リクエスト例

Terminal window
curl -X POST "https://{tenant-domain}/api/admin/ip-allowlist" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"ip_range": "192.168.1.0/24",
"description": "オフィスネットワーク",
"enabled": true
}'

レスポンス例

{
"id": "ip_abc123",
"ip_range": "192.168.1.0/24",
"description": "オフィスネットワーク",
"enabled": true,
"created_at": 1706227200000
}

サポートされる形式

形式説明
単一IP192.168.1.1001つのIPアドレス
CIDR192.168.1.0/24サブネット範囲
IPv62001:db8::1IPv6アドレス
IPv6 CIDR2001:db8::/32IPv6サブネット

IPエントリ更新

既存のIPエントリを更新します。

エンドポイント

PATCH /api/admin/ip-allowlist/:id

リクエストボディ

フィールド必須説明
ip_rangestring-IPアドレスまたはCIDR形式
descriptionstring-説明
enabledboolean-有効/無効

リクエスト例

Terminal window
curl -X PATCH "https://{tenant-domain}/api/admin/ip-allowlist/ip_abc123" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"description": "本社オフィスネットワーク"
}'

レスポンス例

{
"id": "ip_abc123",
"ip_range": "192.168.1.0/24",
"description": "本社オフィスネットワーク",
"enabled": true,
"updated_at": 1706313600000
}

IPエントリ削除

IPエントリを削除します。

エンドポイント

DELETE /api/admin/ip-allowlist/:id

リクエスト例

Terminal window
curl -X DELETE "https://{tenant-domain}/api/admin/ip-allowlist/ip_ghi789" \
-H "Authorization: Bearer {token}"

レスポンス例

{
"deleted": true,
"id": "ip_ghi789"
}

エントリ有効化

無効化されたIPエントリを有効化します。

エンドポイント

POST /api/admin/ip-allowlist/:id/enable

リクエスト例

Terminal window
curl -X POST "https://{tenant-domain}/api/admin/ip-allowlist/ip_ghi789/enable" \
-H "Authorization: Bearer {token}"

レスポンス例

{
"id": "ip_ghi789",
"enabled": true,
"enabled_at": 1706400000000
}

エントリ無効化

IPエントリを無効化します(削除せずに一時的に無効にする)。

エンドポイント

POST /api/admin/ip-allowlist/:id/disable

リクエスト例

Terminal window
curl -X POST "https://{tenant-domain}/api/admin/ip-allowlist/ip_ghi789/disable" \
-H "Authorization: Bearer {token}"

レスポンス例

{
"id": "ip_ghi789",
"enabled": false,
"disabled_at": 1706486400000
}

IP許可チェック

指定されたIPアドレスが許可されているかチェックします。

エンドポイント

POST /api/admin/ip-allowlist/check

リクエストボディ

フィールド必須説明
ip_addressstringチェックするIPアドレス

リクエスト例

Terminal window
curl -X POST "https://{tenant-domain}/api/admin/ip-allowlist/check" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"ip_address": "192.168.1.100"
}'

レスポンス例(許可)

{
"ip_address": "192.168.1.100",
"allowed": true,
"matched_entry": {
"id": "ip_abc123",
"ip_range": "192.168.1.0/24",
"description": "オフィスネットワーク"
},
"restriction_active": true,
"total_entries": 5
}

レスポンス例(拒否)

{
"ip_address": "203.0.113.200",
"allowed": false,
"matched_entry": null,
"restriction_active": true,
"total_entries": 5
}

レスポンス例(制限なし)

{
"ip_address": "203.0.113.200",
"allowed": true,
"matched_entry": null,
"restriction_active": false,
"total_entries": 0
}

ベストプラクティス

  1. オフィスネットワーク: CIDRブロックで広めに設定
  2. VPN: VPNゲートウェイのIPアドレス範囲を登録
  3. リモートワーク: 個別のIPアドレスで管理し、不要になったら無効化
  4. 緊急時対応: 少なくとも1つのバックアップIPを常に有効にしておく