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

Organizerテナント管理UI設定

このドキュメントの目的

組織初期化で作成したOrganizerテナントを、管理ダッシュボード(UI)経由で操作できるようにするための設定ガイドです。

前提条件

  • 組織初期化が完了していること
  • Organizerテナントが作成済みであること

背景

組織初期化(Onboarding API)で作成されるOrganizerテナントは、デフォルトではAPIアクセスのみを想定した最小構成です。管理ダッシュボード(UI)から操作するには、以下の追加設定が必要です。


必須設定一覧

1. ui_config — 管理UI接続設定

管理UIのURLとサインインページのパスを指定します。

{
"tenant": {
"ui_config": {
"base_url": "https://admin.example.com",
"signin_page": "/signin/",
"signup_page": "/signup/"
}
}
}
フィールド説明
base_url管理UIのオリジンURL。APIサーバーURLではなく、UIのURLを指定する
signin_pageサインインページのパス。FIDO2認証を使う場合は /signin/fido2/
signup_pageサインアップページのパス
警告

base_url にはAPIサーバーのURLではなく、管理UIのオリジンURLを設定してください。APIサーバーとUIが同一オリジンの場合は同じURLで問題ありません。

2. cors_config — CORS設定

管理UIからのリクエストを許可するため、CORSを適切に設定します。

{
"tenant": {
"cors_config": {
"allow_origins": [
"https://api.example.com",
"https://admin.example.com"
],
"allow_headers": "Authorization, Content-Type, Accept, x-device-id, X-SSL-Client-Cert",
"allow_methods": "GET, POST, PUT, PATCH, DELETE, OPTIONS",
"allow_credentials": true
}
}
}
フィールド説明
allow_origins許可するオリジン。APIサーバーとUIの両方のオリジンを含める
allow_headers許可するリクエストヘッダー
allow_methods許可するHTTPメソッド
allow_credentialsCookie送信を許可(セッション管理に必須)
注意

allow_origins のみの設定では不十分です。allow_headersallow_methodsallow_credentials も必ず設定してください。

3. claims_supported — サポートクレーム宣言

UserInfoエンドポイントやIDトークンで返却可能なクレームを宣言します。

{
"authorization_server": {
"claims_supported": [
"sub", "iss", "auth_time", "acr",
"name", "given_name", "family_name",
"email", "email_verified",
"phone_number", "phone_number_verified",
"address", "birthdate"
]
}
}
重要

この設定がないと、UserInfo / IDトークンは sub のみしか返しません。 管理UIでユーザー情報を表示するために必須です。

4. カスタムクレーム(roles / permissions / assigned_tenants)

管理UIでロール・権限・担当テナント情報を取得するために、カスタムクレーム用のスコープと設定が必要です。

scopes_supported に追加

{
"authorization_server": {
"scopes_supported": [
"openid", "profile", "email", "management",
"claims:roles",
"claims:permissions",
"claims:assigned_tenants"
]
}
}

custom_claims_scope_mapping を有効化

{
"authorization_server": {
"extension": {
"custom_claims_scope_mapping": true
}
}
}

クライアントのスコープにも追加

{
"client": {
"scope": "openid profile email management claims:roles claims:permissions claims:assigned_tenants"
}
}
重要

custom_claims_scope_mapping: true がないと、claims:* プレフィックス付きスコープが機能せず、UserInfo / IDトークンにカスタムクレーム(roles, permissions, assigned_tenants)が含まれません。

5. statistics_enabled — テナント統計

管理ダッシュボードでテナント統計情報を表示するために有効化します。

{
"tenant": {
"security_event_log_config": {
"statistics_enabled": true
}
}
}

6. エンドポイントキー名の修正

以下のキー名が正しいことを確認してください(旧キー名は非推奨)。

正しいキー名旧キー名(非推奨)
introspection_endpointtoken_introspection_endpoint
revocation_endpointtoken_revocation_endpoint

設定テンプレート

ユースケーステンプレートの onboarding-template.json にはこれらの設定がすべて含まれています。

config/templates/use-cases/{ユースケース名}/onboarding-template.json

新しいOrganizerテナントを作成する場合は、これらのテンプレートをベースにしてください。


チェックリスト

Organizerテナント作成後、管理UIでの動作確認前に以下を確認してください。

  • ui_config.base_url が管理UIのオリジンURLになっている(APIサーバーURLではない)
  • cors_configallow_headersallow_methodsallow_credentials が設定されている
  • claims_supported が設定されている(未設定だと sub のみ返却)
  • scopes_supportedclaims:rolesclaims:permissionsclaims:assigned_tenants が含まれている
  • extension.custom_claims_scope_mappingtrue になっている
  • client.scope にカスタムクレーム用スコープが含まれている
  • security_event_log_config.statistics_enabledtrue になっている
  • introspection_endpoint / revocation_endpoint のキー名が正しい

関連ドキュメント