Getting-Started
このガイドでは、idp-server を初めてセットアップして実行する手順を説明します。
最短セットアップ(TL;DR)
すべての前提条件が揃っている場合、以下のコマンドで起動できます:
# 1. クローン
git clone https://github.com/hirokazu-kobayashi-koba-hiro/idp-server.git
cd idp-server
# 2. サブドメイン設定(初回のみ・macOS)
./scripts/setup-local-subdomain.sh
# 3. 環境変数
cp ./.env.example .env
# .env を編集して必要な値を設定
# 4. 起動
docker compose build && docker compose up -d
# 5. 初期設定
./init-admin-tenant-config.sh && ./setup.sh
# 6. ヘルスチェック
curl -v https://api.local.test/actuator/health
起動したら 主要ユースケース からテンプレートを試してみてください。
以下、各ステップの詳細です。
前提条件
| ツール | 必須バージョン | 推奨 | 備考 |
|---|---|---|---|
| Java | 21+ | Java 21 | |
| データベース | PostgreSQL 14+ または MySQL 8.0+ | PostgreSQL 14+ | Primary/Replica 構成対応 |
| Node.js | 18.0+ | 20.x LTS | E2E テスト実行に必要 |
| Docker | 20.10+ | Docker Desktop 最新版 | Compose V2 対応 |
データベース選択ガイド
- PostgreSQL: ✅ 推奨(Primary/Replica 対応、本番環境向け)
- MySQL: ⚠️ 基本機能のみ(開発・検証環境向け)
ローカル環境構成
この図は、docker-compose を使って構築される idp-server のローカル開発環境の全体構成を示しています。
サブドメイン構成
| サブドメイン | サービス | 説明 |
|---|---|---|
api.local.test | nginx → idp-server | IDP Server API エンドポイント |
mtls.api.local.test | nginx → idp-server | mTLSエンドポイント(クライアント証明書検証、sender-constrainedトークン) |
auth.local.test | app-view | 認可UI(ログイン画面等) |
sample.local.test | sample-web | サンプルRPアプリケーション |
各コンポーネントの役割
| コンポーネント | 説明 |
|---|---|
| 🔀 nginx | リバースプロキシ。api.local.test / mtls.api.local.test へのリクエストを idp-server クラスタにルーティング。mTLSドメインではクライアント証明書を検証・転送 |
| 🔥 idp-server-1/2 | idp-server 本体。クラスタ構成でスケーラビリティ・冗長性を確 認(ポート 8081/8082) |
| 🖥️ app-view | Next.js製の認可UI。ログイン・同意画面などを提供 |
| 🌐 sample-web | サンプルRPアプリ。OIDC連携のデモ・テスト用 |
| 🧠 PostgreSQL Primary | メインDB(プライマリ)。書き込み・読み込み操作を処理(ポート: 5432) |
| 📖 PostgreSQL Replica | 読み取り専用レプリカDB。ストリーミングレプリケーションで同期(ポート: 5433) |
| ⚡ Redis | セッション情報・キャッシュストア(ポート: 6379) |
| 🧪 Mockoon | 外部サービス連携を模擬するモックサーバー(eKYC/通知サービス等) |
特徴
- サブドメイン構成: 本番環境に近い
*.local.testサブドメイン構成 - 複数台構成(HAテスト可): 2台の idp-server をクラスタで起動し、nginx 経由でルーティング
- PostgreSQL Primary/Replica: ストリーミングレプリケーションによる読み書き分離
- Redis セッション/キャッシュ: 高速なセッション管理とキャッシュ
- フロントエンド統合: 認可UI(app-view)とサンプルRP(sample-web)を含む
- モック環境完備: Mockoon による外部連携模擬でE2E試験も可能
Note: MySQL を使用する場合は
docker-compose-mysql.yamlを参照してください。
インストール手順
1. リポジトリのクローン
git clone https://github.com/hirokazu-kobayashi-koba-hiro/idp-server.git
cd idp-server