Application Plane - OAuth/OIDC認証フロー概要
Application Planeとは
エンドユーザー・アプリケーションが使用する認証・認可API
情報源: libs/idp-server-springboot-adapter/src/main/java/org/idp/server/adapters/springboot/application/
確認日: 2025-10-12
Control Planeとの違い
| 項目 | Application Plane | Control Plane |
|---|---|---|
| 目的 | 認証・認可フロー実行 | システム・リソース設定管理 |
| ユーザー | エンドユーザー・RPアプリケーション | システム管理者・組織管理者 |
| URL | /{tenant-id}/v1/... | /v1/management/... |
| 認証 | ユーザートークン or クライアント認証 | 管理者トークン(特定権限必須) |
| 実装パッケージ | usecases/application/ | usecases/control_plane/ |
| 実装パターン | シンプルな委譲(権限チェックなし) | Handler-Serviceパターン(権限・Audit Log・Dry Run) |
Application Planeの種類
1. Relying Party API(OAuth/OIDCフロー)
情報源: libs/idp-server-springboot-adapter/src/main/java/org/idp/server/adapters/springboot/application/restapi/oauth/
認可リクエスト(Authorization Request)
# PAR (Pushed Authorization Request)
POST /{tenant-id}/v1/authorizations/push
Content-Type: application/x-www-form-urlencoded
client_id=xxx&redirect_uri=https://...&scope=openid profile&...
# 認可リクエスト
GET /{tenant-id}/v1/authorizations?request_uri=urn:ietf:params:oauth:request_uri:xxx
GET /{tenant-id}/view/v1/authorizations?response_type=code&client_id=xxx&...
実装: OAuthV1Api.java
トークンエンドポイント
# トークン発行
POST /{tenant-id}/v1/tokens
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code&code=abc123&client_id=xxx&...
# トークンイントロスペクション
POST /{tenant-id}/v1/tokens/introspection
# トークン失効
POST /{tenant-id}/v1/tokens/revocation
実装: TokenV1Api.java
UserInfo
GET /{tenant-id}/v1/userinfo
Authorization: Bearer eyJ...