Admin Client#

Configure admin client#

admin = KeycloakAdmin(
            server_url="http://localhost:8080/",
            username='example-admin',
            password='secret',
            realm_name="master",
            user_realm_name="only_if_other_realm_than_master")

Configure admin client with connection#

from keycloak import KeycloakAdmin
from keycloak import KeycloakOpenIDConnection

keycloak_connection = KeycloakOpenIDConnection(
                        server_url="http://localhost:8080/",
                        username='example-admin',
                        password='secret',
                        realm_name="master",
                        user_realm_name="only_if_other_realm_than_master",
                        client_id="my_client",
                        client_secret_key="client-secret",
                        verify=True)

keycloak_admin = KeycloakAdmin(connection=keycloak_connection)

Create user#

new_user = keycloak_admin.create_user({"email": "example@example.com",
                                       "username": "example@example.com",
                                       "enabled": True,
                                       "firstName": "Example",
                                       "lastName": "Example"})

Add user and raise exception if username already exists#

The exist_ok currently defaults to True for backwards compatibility reasons.

new_user = keycloak_admin.create_user({"email": "example@example.com",
                                       "username": "example@example.com",
                                       "enabled": True,
                                       "firstName": "Example",
                                       "lastName": "Example"},
                                        exist_ok=False)

Add user and set password#

new_user = keycloak_admin.create_user({"email": "example@example.com",
                                       "username": "example@example.com",
                                       "enabled": True,
                                       "firstName": "Example",
                                       "lastName": "Example",
                                        "credentials": [{"value": "secret","type": "password",}]})

Add user and specify a locale#

new_user = keycloak_admin.create_user({"email": "example@example.fr",
                                       "username": "example@example.fr",
                                       "enabled": True,
                                       "firstName": "Example",
                                       "lastName": "Example",
                                       "attributes": {
                                           "locale": ["fr"]
                                       }})

User counter#

count_users = keycloak_admin.users_count()

Get users Returns a list of users, filtered according to query parameters#

users = keycloak_admin.get_users({})

Get user ID from username#

user_id_keycloak = keycloak_admin.get_user_id("username-keycloak")

Get user#

user = keycloak_admin.get_user("user-id-keycloak")

Update user#

response = keycloak_admin.update_user(user_id="user-id-keycloak",
                                      payload={'firstName': 'Example Update'})

Update user password#

response = keycloak_admin.set_user_password(user_id="user-id-keycloak", password="secret", temporary=True)

Get user credentials#

credentials = keycloak_admin.get_credentials(user_id='user_id')

Get user credential by ID#

credential = keycloak_admin.get_credential(user_id='user_id', credential_id='credential_id')

Delete user credential#

response = keycloak_admin.delete_credential(user_id='user_id', credential_id='credential_id')

Delete User#

response = keycloak_admin.delete_user(user_id="user-id-keycloak")

Get consents granted by the user#

consents = keycloak_admin.consents_user(user_id="user-id-keycloak")

Send user action#

response = keycloak_admin.send_update_account(user_id="user-id-keycloak",
                                              payload=['UPDATE_PASSWORD'])

Send verify email#

response = keycloak_admin.send_verify_email(user_id="user-id-keycloak")

Get sessions associated with the user#

sessions = keycloak_admin.get_sessions(user_id="user-id-keycloak")