得られるもの
- ID プロバイダー経由での Manager と API へのログイン
- ロール:
eddi-admin、eddi-editor、eddi-user、eddi-viewer、および承認の判断を行うeddi-approver - インストーラーが Keycloak にインポートする、構成済みの
eddiレルム - サインイン中のユーザーとして実行される呼び出しにより、監査証跡に実在の人物が記録される
EDDIでの仕組み
- インストーラーを
--with-auth付きで実行します。Keycloak が起動し、初回起動時にeddiレルムがインポートされます。 - Keycloak の管理コンソールで
eddiユーザーのパスワードを設定します。同梱のレルムにはパスワードが設定されていません。 - Manager にサインインします。必要なロールをメンバーに付与し、承認者を
eddi-approverに追加します。 - 既存の ID プロバイダーを使う場合は、
QUARKUS_OIDC_*変数(テナントの有効化、認証サーバーのURL、クライアントID、クライアントシークレット)を設定します。 - HTTP 呼び出しでは、共有の認証情報の代わりに
${caller:token}を使い、サインイン中のユーザー自身のトークンで API を呼び出します。
設定
EDDIのドキュメントに基づいています。your-agent-id のようなプレースホルダーは、ご自身の値に置き換えてください。
bash install.sh --with-authdocker run -d \
-p 7070:7070 \
-e MONGODB_CONNECTIONSTRING='mongodb://mongo:27017/eddi?retryWrites=true&w=majority' \
-e QUARKUS_OIDC_TENANT_ENABLED=true \
-e QUARKUS_OIDC_AUTH_SERVER_URL='https://keycloak.example.com/realms/eddi' \
-e QUARKUS_OIDC_CLIENT_ID=eddi \
-e QUARKUS_OIDC_CREDENTIALS_SECRET="$OIDC_CLIENT_SECRET" \
labsai/eddi:6.4.0ガバナンス
- 本番の起動モードでは、明示的にオプトアウトしない限り、OIDC が無効のままではEDDIは起動を拒否します。そのため、管理 API が公開された状態になるのは、偶然ではなく意図した判断の結果です。
- 承認のエンドポイントには、
eddi-approverロール、またはオーナーかeddi-adminが必要です。 ${caller:token}を使うと、監査証跡には実際のユーザーが記録されます。共有の固定認証情報を使うと、すべての操作が1つのプリンシパルにまとまってしまいます。
知っておくべきこと
- 認証はオプションで、デフォルトではオフです。インストーラーがプロビジョニングするのは Keycloak です。他の OIDC プロバイダーも同じ設定を使用しますが、一部の詳細(たとえば A2A で公開されるトークンエンドポイント)は、設定しない限り Keycloak のパスを前提とします。
- 同梱のレルムのインポートは1回限りです。その後に JSON を編集しても、稼働中の Keycloak には反映されません。
関連するインテグレーション
このページの設定と動作は、2026-10-14に確認したEDDIのドキュメントに基づいています。フィールド名やデフォルト値はリリースによって変わることがあるため、お使いのバージョンのドキュメントで確認してください。