通过 keycloak admin API 创建一个领域、客户端和用户

问题描述 投票:0回答:1

我正在尝试与客户端(公共和私人)和用户创建一个完整的领域。我可以使用从另一个领域获得的令牌创建领域。即,我能够调用 API

{{base_path}}/admin/realms
并使用另一个领域客户端令牌(具有领域创建权限客户端)创建 API。

但是使用与创建领域相同的令牌,我无法调用客户端创建 API

{{base_path}}/admin/realms/{{realm_name}}/clients
或用户创建 API
{{base_path}}/admin/realms/{{realm_name}}/users

知道如何实现这一目标吗?还是我错过了什么?

keycloak keycloak-services
1个回答
0
投票

我需要知道您到底收到了什么错误代码,但通常是因为权限不足。为了检查您可以使用 JWT 执行哪些操作,您可以在此处解码您的 JWT。 例如,这是一个解码后的 JWT:

{
  "exp": 1726550959,
  "iat": 1726550239,
  "jti": "814bad70-2db3-46fb-a535-46a0bb526f60",
  "iss": "http://192.168.0.11:18080/auth/realms/camunda-platform",
  "aud": [
    "realm-management",
    "tasklist-api",
    "zeebe-api",
    "operate-api",
    "web-modeler-api",
    "admin-cli",
    "optimize-api",
    "web-modeler-public-api",
    "camunda-identity-resource-server",
    "broker",
    "account"
  ],
  "sub": "b27ac7e2-05f9-485b-a184-da50f0759bd0",
  "typ": "Bearer",
  "azp": "react-app",
  "acr": "1",
  "allowed-origins": [
    "192.168.0.8/*"
  ],
  "realm_access": {
    "roles": [
      "Tasklist",
      "realm-admin",
      "Default user role",
      "offline_access",
      "Operate",
      "uma_authorization",
      "Identity",
      "Optimize",
      "Zeebe",
      "Web Modeler"
    ]
  },
...

如您所见,您可以识别您的令牌是否已过期或是否可以访问您需要的资源。例如,请检查上面的

aud
(观众)部分。

但在此之前,我会使用来自

master
领域的令牌检查请求。如果有效,您可以确保端点和标头正确。然后,您可以转到管理控制台并启用必要的角色并向您的客户端授予所需的权限。

© www.soinside.com 2019 - 2024. All rights reserved.