Создайте следующее, используя keycloak rest api.
• Создать новое царство (управляемое)
• создать новую область "admin", например: realm-master
• присвоить царству-хозяину роль управляющего царством
Попытка написать полностью автоматизированное CI-решение для моего приложения, использующего Keycloak. Где я автоматически воссоздаю сервер keycloak в k8s во время теста, чтобы быть на 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 - использование API администратора для добавления роли клиента к пользователю
Но не справился с этим эфиром.
Если кто-нибудь знает точные команды для выполнения с использованием API, пожалуйста, поделитесь.
К этому заданию я уже много часов отработал, и было бы здорово, если бы кто-то прямо сделал это. Если это так, я, вероятно, смогу расшифровать, как читать документацию о брелоке для будущих проблем.
Благодарен за любые отзывы.