원클릭으로
dev-control-plane
管理API(Control Plane)の開発・修正を行う際に使用。システムレベル・組織レベルAPI、リソース管理、権限モデル実装時に役立つ。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
管理API(Control Plane)の開発・修正を行う際に使用。システムレベル・組織レベルAPI、リソース管理、権限モデル実装時に役立つ。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
UserInfoエンドポイント(UserInfo Endpoint)機能の開発・修正を行う際に使用。UserInfo claims、scopeフィルタリング、verified_claims実装時に役立つ。
外部API認証ユースケースの設定ガイド。外部API連携(認証委譲、リスク判定、OTP等)の interaction 設計、identity_match_field、MFA 2段階目、previous_interaction のヒアリングと設定JSONを提供。
ユースケース別セットアップのエントリポイント。ユーザーにユースケースを選択してもらい、対応するスキル(use-case-login, use-case-mfa等)にルーティングする。共通ワークフロー、前提条件、組み合わせパターンの概要を提供。
認証機能(Authentication Policy, MFA)の開発・修正を行う際に使用。認証ポリシー、パスワード、OTP、FIDO2、条件付き認証実装時に役立つ。
セキュリティ・脆弱性対策の開発・テストを行う際に使用。OAuth/OIDC攻撃対策、認証識別子切り替え攻撃、Session Fixation、マルチテナント分離、セキュリティテスト実装時に役立つ。
外部サービス連携(External Service Integration)機能の開発・修正を行う際に使用。HTTP Request Executor, MappingRule, OAuth/HMAC認証実装時に役立つ。
| name | dev-control-plane |
| description | 管理API(Control Plane)の開発・修正を行う際に使用。システムレベル・組織レベルAPI、リソース管理、権限モデル実装時に役立つ。 |
documentation/docs/content_06_developer-guide/02-control-plane/00-resource-overview.md - リソース一覧documentation/docs/content_06_developer-guide/02-control-plane/01-overview.md - Control Plane概要documentation/docs/content_06_developer-guide/02-control-plane/03-system-level-api.md - システムレベルAPIdocumentation/docs/content_06_developer-guide/02-control-plane/04-organization-level-api.md - 組織レベルAPIControl Planeは、idp-serverの管理API層。システム全体の設定管理、組織・テナント管理、リソース構成を行う。
spec-rbac)libs/
├── idp-server-control-plane/ # 管理API契約定義
│ └── .../control_plane/management/
│ ├── organization/ # 組織管理API
│ │ └── OrganizationManagementApi.java
│ ├── tenant/ # テナント管理API
│ │ └── TenantManagementApi.java
│ ├── oidc/client/ # クライアント管理API
│ │ └── ClientManagementApi.java
│ ├── authentication/ # 認証ポリシー管理API
│ │ └── AuthenticationPolicyManagementApi.java
│ ├── identity/user/ # ユーザー管理API
│ │ └── UserManagementApi.java
│ └── ... (各ドメイン別)
│
├── idp-server-use-cases/ # EntryService実装
│ └── .../management/
│ ├── system/
│ │ └── OrganizationManagementEntryService.java
│ └── organization/
│ └── TenantManagementEntryService.java
│
└── idp-server-core/ # ドメインロジック
└── .../handler/
├── OrganizationHandler.java
└── TenantHandler.java
// 1. ManagementApi (契約定義)
public interface OrganizationManagementApi {
ResponseEntity<?> create(OrganizationCreateRequest request);
ResponseEntity<?> update(
String orgId,
OrganizationUpdateRequest request
);
}
// 2. EntryService (use-casesモジュール)
public class OrganizationManagementEntryService {
public void create(OrganizationCreateRequest request) {
// Handler呼び出し
handler.create(request.toEntity());
}
}
// 3. Handler (coreモジュール)
public class OrganizationHandler {
public void create(Organization org) {
// Validator で検証
validator.validate(org);
// Repository呼び出し
repository.register(org);
}
}
// Handler: Tenant第一引数
public class ClientHandler {
public void create(Tenant tenant, Client client) {
validator.validate(tenant, client);
repository.register(tenant, client);
}
}
// Repository: Tenant第一引数必須(OrganizationRepository除く)
public interface ClientRepository {
void register(Tenant tenant, Client client);
Client find(Tenant tenant, ClientId clientId);
}
e2e/src/tests/
└── scenario/control_plane/
├── organization/
│ ├── organization_tenant_management.test.js
│ ├── organization_client_management.test.js
│ ├── organization_scope_management.test.js
│ ├── organization_authentication_policy_management*.test.js
│ ├── organization_federation_configuration_management.test.js
│ └── organization_identity_verification_config_management*.test.js
└── resource_server/
# ビルド
./gradlew :libs:idp-server-control-plane:compileJava
./gradlew :libs:idp-server-use-cases:compileJava
# テスト
cd e2e && npm test -- scenario/control_plane/organization/
Tenantを第一引数に渡す(OrganizationRepository除く)repository.find(tenant, clientId) ✓repository.find(clientId) ✗dryRunパラメータを受け取るif (dryRun) return;の前にValidatorを実行管理 API のリクエスト/レスポンス変換を担うパターン。
public class IdpServerStarterContextCreator {
// JsonConverter.snakeCaseInstance() で snake_case ↔ camelCase 変換
// 自動フィールド生成(例: client_id)
// toResponse() でレスポンス用 Map 生成
}
DefaultAdminPermission 列挙型(73権限)で管理APIの権限を定義。idp:resource:action 形式。ワイルドカードマッチング(idp:*, idp:user:*)をサポート。
ApiPermissionVerifier(システムレベル)、OrganizationAccessVerifier(組織レベル4段階検証)idp: 名前空間は予約。カスタムは任意の名前空間を使用可能詳細は spec-rbac スキルを参照。
探索起点: libs/idp-server-control-plane/src/main/java/org/idp/server/control_plane/base/definition/DefaultAdminPermission.java