15.2. HawtIO における汎用 OpenID Connect 認証
HawtIO 4 は、既存の OpenID Connect プロバイダー (Keycloak、Microsoft Entra ID、Auth0 など) と併用でき、次のライブラリーを使用してタスクを実行します。
- HawtIO Server から OpenID Connect プロバイダーへの HTTP 通信を実装する Apache HTTP Client 4 (例: トークン署名検証用の公開鍵に関する情報を取得するため)。
- OpenID Connect/OAuth2 アクセストークンを操作および検証するための Nimbus JOSE + JWT ライブラリー。
これらのライブラリーは HawtIO Server WAR に含まれているため、追加のライブラリーをインストール/デプロイする必要はありません (Keycloak 固有の設定の場合と同様)。外部 OpenID Connect プロバイダーを使用して HawtIO を設定するには、1 つの設定ファイルを提供し、HawtIO をその場所に指す必要があります。
OIDC (OpenID Connect) 設定の場所を指定するシステムプロパティーは -Dhawtio.oidcConfig ですが、それが指定されていない場合はデフォルトの場所がチェックされます。デフォルトは次のとおりです。
-
Karaf ランタイムの場合:
${karaf.base}/etc/hawtio-oidc.properties -
Jetty ランタイムの場合:
${jetty.home}/etc/hawtio-oidc.properties -
Tomcat ランタイムの場合:
${catalina.home}/conf/hawtio-oidc.properties -
JBoss/EAP/Wildfly ランタイムの場合:
${jboss.server.config.dir}/hawtio-oidc.properties -
Apache Artemis ランタイムの場合:
${artemis.instance.etc}/hawtio-oidc.properties -
classpath:hawtio-oidc.propertiesにフォールバックします (組み込み HawtIO を使用する場合)
Keycloak 固有の設定とは異なり、1 つの *.properties ファイルで OpenID Connect 設定のすべてを設定できます。
以下はそのテンプレートです。
このファイルは、HawtIO および OpenID Connect の一部を設定します。
- OAuth2 - 認可サーバー、クライアント ID、いくつかの OpenID Connect 関連オプションの場所を設定します
- JWKS - jwks_uri から取得した公開鍵のキャッシュ時間。jwks_uri は、認可サーバーが使用する公開鍵を公開するエンドポイントです。
- JWT トークン設定 - 認証済みユーザーに関連付けられたロールを含むクレーム (JSON Web トークンのフィールド) に関する情報。また、認可サーバーで定義されたロールを、アプリケーション (HawtIO サーバーおよび Jolokia) で使用されるロールにマッピングすることもできます。
- HTTP 設定 - サーバー側の HTTP クライアントが認可サーバーに接続するため (OpenID Connect メタデータと公開された公開鍵を取得するため) に使用します。
この設定例は特定のニーズに合わせて調整できますが、そのままコンテナー化された Keycloak と組み合わせて使用しても機能します。以下を参照してください。