Python 中的 KeyCloak 管理功能

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

我正在尝试访问 Keycloak Admin 以使用以下代码获取用户信息。执行任何 GET 命令时出现 403 错误。任何人都可以提供帮助或看到此错误。打印时得到“无”,打印(keycloak_admin1.get_token())。

from keycloak import keycloak_admin
keycloak_admin1 = keycloak_admin.KeycloakAdmin(server_url=endpoint,username=username, password=password,realm_name=realmname,client_id= clientid,client_secret_key=clientsecret,verify= True)
print(keycloak_admin1.realm_name)
print(keycloak_admin1.token)

# User counter
count_users = keycloak_admin1.users_count()
getusers = keycloak_admin1.get_user()
print(count_users)
python keycloak keycloak-rest-api
2个回答
1
投票

我最终使用了 Keycloak API,它解决了我的问题。仍然不确定为什么 python.keycloak 包不起作用。因此将此问题标记为已完成。


0
投票

您似乎同时使用了客户端密码和用户名密码...这是自愿的吗?

另一个不错的图书馆是mantelo。它提供与 python-keycloak 相同的身份验证机制,但仅包装 HTTP 调用(而不是重新实现它们)。这意味着您可以“完全/原始”访问管理 API,但使用 Python 风格的代码。

您的情况:

from mantelo import KeycloakAdmin

# We assume the server is running on localhost:9090
# and the admin user is "admin" with password "admin"
c = KeycloakAdmin.from_username_password(
    server_url=endpoint, # e.g. "http://localhost:8080"
    realm_name=realm, # e.g. "master"
    client_id=client, # e.g. "admin-cli"
    username=user,
    password=pass,
)

# get number of users
c.users.count.get()

# get the users
c.users.get()

c.users.get()
的响应示例:

[{'id': '8d83ecda-766d-4382-8f3a-4c5ac1962961',
  'username': 'constant',
  'firstName': 'Jasper',
  'lastName': 'Fforde',
  'email': '[email protected]',
  'emailVerified': True,
  'createdTimestamp': 1710273159287,
  'enabled': True,
  'totp': False,
  'disableableCredentialTypes': [],
  'requiredActions': [],
  'notBefore': 0,
  'access': {'manageGroupMembership': True,
   'view': True,
   'mapRoles': True,
   'impersonate': False,
   'manage': True}}]
© www.soinside.com 2019 - 2024. All rights reserved.