Создайте keycloak пользователя через API и назначая управление ролями клиента - PullRequest
0 голосов
/ 03 июня 2019

Создайте следующее, используя 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, пожалуйста, поделитесь.

К этому заданию я уже много часов отработал, и было бы здорово, если бы кто-то прямо сделал это. Если это так, я, вероятно, смогу расшифровать, как читать документацию о брелоке для будущих проблем.

Благодарен за любые отзывы.

1 Ответ

0 голосов
/ 04 июня 2019

Если вы хотите автоматизировать установку и настройку Keycloak, вы можете вместо этого использовать admin-cli

, вы можете создать роль области примерно так:

$ kcadm.sh create roles -r demorealm ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...