【发布时间】:2019-10-19 10:12:40
【问题描述】:
使用 keycloak rest api 创建以下内容。
• 创建一个新领域(托管)
• 创建一个新领域“管理员”,例如:领域主
• 为领域管理员分配领域管理角色
尝试为我使用 keycloak 的应用程序编写全自动 CI 解决方案。我在测试期间自动在 k8s 中重新创建 keycloak 服务器以 100% 确保一切始终相同。
目前正在使用 keycloak 5。
import requests
URL = "http://127.0.0.1:8081/auth/"
openid_url = URL + "realms/master/protocol/openid-connect/token"
user_url = URL + "admin/realms/master/users"
data = {
"username": "keycloak",
"password": "keycloak-pw",
"grant_type": "password",
"client_id": "admin-cli",
}
token_request = requests.post(openid_url, data=data)
token_raw = token_request.json()
AUTH_TOKEN = token_raw.get("access_token")
user_data = {
"username": "realm-master2",
"enabled": "true",
"credentials": [{"type": "password", "value": "super-secret-password"}],
}
headers = {"Authorization": "Bearer " + AUTH_TOKEN, "Content-Type": "application/json"}
user_request = requests.post(user_url, json=user_data, headers=headers)
print(f"Got status code: {user_request} with data \n")
print(user_request.json())
但我无法将我的新用户分配给客户端角色领域管理中的所有角色。 我试图阅读 api 文档,但我找不到如何执行命令。
我尝试使用 POST /{realm}/users/{id}/role-mappings/realm 的文档 但我不明白身体应该是什么样子,或者我应该使用这个端点。 找到:Keycloak - using admin API to add client role to user 但没有管理那个以太。
如果有人知道使用 api 执行的确切命令,请分享。
到目前为止,我已经为这项任务投入了很多时间,如果有人能直截了当地做这件事,那就太好了。如果是这样,我可能也可以解码如何阅读 keycloak 文档以了解未来的问题。
感谢您的任何反馈。
【问题讨论】: