Судя по тому, что я смог найти, похоже, что вы используете этот git репозиторий . И здесь - это метод, который вы сейчас вызываете. Но здесь нет удаления / удаления.
Keycloak предоставляет это как API, поэтому лучше всего будет иметь собственное удаление. Примерно так (предупреждение - не проверено !!):
def remove_realm_roles(self, user_id, client_id, roles):
"""
Removes realm roles to a user
:param user_id: id of user
:param client_id: id of client containing role (not client-id)
:param roles: roles list or role (use RoleRepresentation)
:return Keycloak server response
"""
payload = roles if isinstance(roles, list) else [roles]
params_path = {"realm-name": self.realm_name, "id": user_id}
data_raw = self.raw_delete(URL_ADMIN_USER_REALM_ROLES.format(**params_path),
data=json.dumps(payload))
return raise_error_from_response(data_raw, KeycloakGetError, expected_code=204)
Единственное изменение кода из репозитория git состоит в том, что здесь используется raw_delete
вместо raw_post
. Документы Keycloak Admin REST API показывают, что он принимает точно такие же параметры, так что это просто вопрос изменения метода HTTP.