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
Copy to Clipboard

启动之后,浏览 http://localhost:18080/admin/master/console/ 并创建一个新域:

Keycloak 创建域

在 realm 创建屏幕中,上传 hawtio-demo-realm.json,它使用预先配置的 hawtio-client 客户端和 3 个用户定义新的 hawtio-demo 域:

  1. 带有角色 管理器、admin、vieweruseradmin /admin
  2. 带有角色查看器和 用户的 viewer /viewer
  3. 只使用用户角色的 jdoe/jdoe

15.4.1. 检查 JWT 令牌问题

要检查授予访问令牌的内容,我们可以使用 Keycloak 接口。导航到"Clients",选择"hawtio-client",并使用带有"Evaluate"子选项卡的"客户端范围"选项卡:

Keycloak 评估

然后,在"Users"字段中,可以选择"admin",然后单击"确定的访问令牌"。然后,可以检查示例令牌:

{
  "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"
}
Copy to Clipboard

了解 JWT 访问令牌的结构,我们可以检查角色路径是否已正确配置:

# example for Keycloak with use-resource-role-mappings=false
oidc.rolesPath = realm_access.roles
Copy to Clipboard
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat