メインコンテンツまでスキップ

サーバー初期設定ガイド

このドキュメントの目的

idp-serverを実運用可能な状態で構築することが目標です。

このドキュメントはクイックスタートを補足し、本格的なセットアップに必要な詳細を提供します。

このドキュメントの位置づけ

クイックスタート(quickstart-01)との関係:

  • quickstart-01: 5分で動作確認(Docker Composeで即座に起動)
  • このドキュメント: 詳細な理解と実運用準備(環境別の構築手順)

学べること

idp-serverの初期化の詳細

所要時間

⏱️ 約30分(環境構築含む)

次のドキュメント


前提条件


初期設定とは

初期設定とは、idp-serverの運用を開始するための最初のステップです。

Adminテナントを構築します。

1つのAPIリクエストで以下をまとめて作成できます:

  1. Organization - Admin用の組織
  2. Tenant -Adminテナント(Adminタイプ)
  3. Authorization Server - 認可サーバー設定
  4. User - 管理者ユーザー
  5. Client - 管理用クライアント

事前準備

以下の環境変数を生成します:

環境変数名説明生成コマンド例
IDP_SERVER_API_KEY管理API認証キーuuidgen | tr 'A-Z' 'a-z'
IDP_SERVER_API_SECRET管理API認証シークレットuuidgen | tr 'A-Z' 'a-z' | base64
ENCRYPTION_KEYデータ暗号化キー (AES-256)head -c 32 /dev/urandom | base64
POSTGRES_PASSWORDPostgreSQLのマスターユーザー用のパスワードhead -c 24 /dev/urandom | base64
DB_OWNER_PASSWORDDB管理ユーザー用のパスワードhead -c 24 /dev/urandom | base64
IDP_DB_ADMIN_PASSWORDIDP管理ユーザー用のパスワードhead -c 24 /dev/urandom | base64
IDP_DB_APP_PASSWORDIDPアプリユーザー用のパスワードhead -c 24 /dev/urandom | base64
ADMIN_USERNAME管理者ユーザー名"administrator_$(date +%s)"
ADMIN_EMAIL管理者メールアドレス"$ADMIN_USERNAME@mail.com"
ADMIN_PASSWORD管理者パスワードhead -c 12 /dev/urandom | base64
ADMIN_TENANT_ID管理テナントIDuuidgen | tr A-Z a-z
ADMIN_CLIENT_ID管理クライアントIDuuidgen | tr A-Z a-z
ADMIN_CLIENT_ID_ALIAS管理クライアントエイリアス"client_$(head -c 4 /dev/urandom | base64 | tr -dc 'a-zA-Z0-9' | head -c 8)"
ADMIN_CLIENT_SECRET管理クライアントシークレットhead -c 48 /dev/urandom | base64

一括生成スクリプト:

.envファイルを自動で作成します。

./init.sh

Adminテナント初期設定API

POST /v1/admin/initializationに対してAPIを実行します。

setupスクリプト:

#!/bin/zsh
# read .env
set -a; [ -f .env ] && source .env; set +a

echo "env: $ENV"
echo "url: $BASE_URL"

#admin
curl -X POST "${IDP_SERVER_DOMAIN}v1/admin/initialization" \
-u "${IDP_SERVER_API_KEY}:${IDP_SERVER_API_SECRET}" \
-H "Content-Type:application/json" \
--data @./config/examples/"${ENV}"/admin-tenant/initial.json | jq

正常性確認

Adminテナントのトークン取得

# 接続先サーバーURL
IDP_SERVER_URL=http://localhost:8080

# ⚠️ パスワードに特殊文字(!,$,\等)が含まれる可能性があるため --data-urlencode
curl -X POST "${IDP_SERVER_URL}/${ADMIN_TENANT_ID}/v1/tokens" \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=password' \
--data-urlencode "username=${ADMIN_USER_EMAIL}" \
--data-urlencode "password=${ADMIN_USER_PASSWORD}" \
--data-urlencode "client_id=${ADMIN_CLIENT_ID}" \
--data-urlencode "client_secret=${ADMIN_CLIENT_SECRET}" \
--data-urlencode 'scope=management' | jq .

次のステップ

✅ サーバーの初期構築が完了しました!

次に、idp-serverの初期設定を行います:

  1. 組織初期化

    • 組織・管理者テナント・ユーザーの作成
    • 管理者権限の設定
  2. テナント設定

    • アプリケーション用テナントの作成
    • OAuth/OIDC認証設定
  3. クライアント登録

    • クライアントアプリケーションの登録
    • 認証フローの設定

関連ドキュメント


最終更新: 2025-10-14 難易度: ⭐⭐☆☆☆(初級〜中級) 対象: idp-serverを初めてセットアップする管理者・開発者