15.4. Keycloak で HawtIO と OpenID Connect 認証を使用する
Keycloak インスタンスを実行する最も簡単な方法は、コンテナーを使用することです。
podman run -d --name keycloak \ -p 18080:8080 \ -e KEYCLOAK_ADMIN=admin \ -e KEYCLOAK_ADMIN_PASSWORD=admin \ quay.io/keycloak/keycloak:latest start-dev
起動したら、http://localhost:18080/admin/master/console/ にアクセスし、新しいレルムを作成します。

レルム作成画面で、事前設定された hawtio-client クライアントと 3 ユーザーを含む新しい hawtio-demo レルムを定義する hawtio-demo-realm.json をアップロードします。
-
admin または
manager
、admin
、viewer
、user
のロールを持つ admin -
viewer または
viewer
およびuser
のロールを持つ viewer -
jdoe または
user
ロールのみを持つ jdoe
15.4.1. JWT トークンに関する問題の調査
付与されたアクセストークンの内容を確認するには、Keycloak インターフェイスを使用できます。"Clients" に移動して "hawtio-client" を選択し、"Client scopes" タブと "Evaluate" サブタブを使用します。

次に "Users" フィールドで、たとえば "admin" を選択し、"Generated access token" をクリックします。次に、サンプルトークンを調査します。
{ "exp": 1709552728, "iat": 1709552428, "jti": "0f33971f-c4f7-4a5c-a240-c18ba3f97aa1", "iss": "http://localhost:18080/realms/hawtio-demo", "aud": "account", "sub": "84d156fa-e4cc-4785-91c1-4e0bda4b8ed9", "typ": "Bearer", "azp": "hawtio-client", "session_state": "181a30ac-fce1-4f4f-aaee-110304ccb0e6", "acr": "1", "allowed-origins": [ "http://0.0.0.0:8181", "http://localhost:8080", "http://localhost:8181", "http://0.0.0.0:10001", "http://0.0.0.0:8080", "http://localhost:10001", "http://localhost:10000", "http://0.0.0.0:10000" ], "realm_access": { "roles": [ "viewer", "manager", "admin", "user" ] }, "resource_access": { "account": { "roles": [ "manage-account", "manage-account-links", "view-profile" ] } }, "scope": "openid profile email", "sid": "181a30ac-fce1-4f4f-aaee-110304ccb0e6", "email_verified": false, "name": "Admin HawtIO", "preferred_username": "admin", "given_name": "Admin", "family_name": "HawtIO", "email": "admin@hawt.io" }
JWT アクセストークンの構造がわかれば、ロールパスが正しく設定されているかどうかを確認できます。
# example for Keycloak with use-resource-role-mappings=false oidc.rolesPath = realm_access.roles