Control Plane分離設計提案
Issue #420 対応: コントロールプレーン分離による運用性・拡張性向上
📋 現状分析
現在のアーキテクチャ課題
🔗 密結合による問題
- パフォーマンス影響: 管理操作が認証性能に悪影響
- スケーラビリティ制約: 独立スケールが不可能
- 運用複雑性: 単一デプロイ・単一障害点
- セキュリティリスク: 攻撃面の拡大・権限昇格リスク
現在の構成 (全21+ API・40+ 権限)
┌─────────────────────────────────────────────────┐
│ idp-server-app │
├─────────────────┬───────────────────────────────┤
│ Data Plane │ Control Plane │
│ │ │
│ • 認証・認可処理 │ • Tenant管理 (TenantManagementApi) │
│ • OAuth/OIDC │ • User管理 (UserManagementApi) │
│ • Token発行・検証 │ • Client管理 (ClientManagementApi) │
│ • Session管理 │ • Role/Permission管理 │
│ │ • Security Event管理 │
│ │ • Audit Log管理 │
│ │ • Authentication設定管理 │
│ │ • Federation設定管理 │
└─────────────────┴───────────────────────────────┘
🎯 分離アーキテクチャ設計案
Option 1: マイクロサービス完全分離
アーキテクチャ概要
責任分担
Control Plane Service
📋 管理・設定機能
├── Tenant Management (テナント管理)
├── User Management (ユーザー管理)
├── Client Management (クライアント管理)
├── Role & Permission Management (ロール・権限管理)
├── Authentication Policy Management (認証ポリシー管理)
├── Federation Configuration (フェデレーション設定)
├── Security Event Management (セキュリティイベント管理)
├── Audit Log Management (監査ログ管理)
└── System Operations (システム運用)
🔒 管理権限・セキュリティ
├── Admin Authentication (管理者認証)
├── Administrative Authorization (管理認可)
├── Multi-tenant Admin Context (マルチテナント管理コンテキスト)
└── Audit Trail (管理操作監査証跡)
📊 運用機能
├── Configuration Management (設定管理)
├── System Health Monitoring (システムヘルス監視)
├── Performance Analytics (性能分析)
└── Maintenance Operations (メンテナンス操作)
Data Plane Service
🔐 認証・認可機能
├── OAuth 2.0 Authorization (OAuth認可)
├── OpenID Connect Authentication (OIDC認証)
├── Token Issuance & Validation (トークン発行・検証)
├── Session Management (セッション管理)
├── MFA Processing (多要素認証処理)
├── WebAuthn/FIDO2 Processing (WebAuthn処理)
└── Password Authentication (パスワード認証)
🚀 高性能処理
├── Token Caching (トークンキャッシュ)
├── Session Store Management (セッションストア管理)
├── Rate Limiting (レート制限)
└── Request Processing Optimization (リクエスト処理最適化)
📈 拡張仕様対応
├── CIBA (Client Initiated Backchannel Authentication)
├── FAPI (Financial-grade API)
├── PKCE (Proof Key for Code Exchange)
├── Verifiable Credentials (検証可能資格情報)
└── Identity Assurance (身元保証)
技術仕様
API Gateway設定
# API Gateway ルーティング設定
routes:
control_plane:
paths: ["/v1/management/*", "/v1/admin/*"]
service: idp-control-plane-service
auth: admin_oauth_token
data_plane:
paths: ["/v1/oauth/*", "/v1/oidc/*", "/v1/.well-known/*"]
service: idp-data-plane-service
auth: client_credentials_or_none
データベース分離
# Control Plane DB (管理データ)
control_plane_database:
tables:
- tenants
- users (管理用メタデータ)
- clients (管理設定)
- admin_users
- admin_roles
- audit_logs
- security_events
# Data Plane DB (運用データ)
data_plane_database:
tables:
- oauth_tokens
- oauth_codes
- user_sessions
- authentication_devices
- user_credentials (ハッシュ化済み)
- federated_identities