|
|
@ -24,7 +24,8 @@ from .urls_patterns import \ |
|
|
|
URL_ADMIN_SEND_UPDATE_ACCOUNT, URL_ADMIN_RESET_PASSWORD, URL_ADMIN_SEND_VERIFY_EMAIL, URL_ADMIN_GET_SESSIONS, \ |
|
|
|
URL_ADMIN_SERVER_INFO, URL_ADMIN_CLIENTS, URL_ADMIN_CLIENT, URL_ADMIN_CLIENT_ROLES, URL_ADMIN_REALM_ROLES, \ |
|
|
|
URL_ADMIN_GROUP, URL_ADMIN_GROUPS, URL_ADMIN_GROUP_CHILD, URL_ADMIN_USER_GROUP, URL_ADMIN_GROUP_MEMBERS, \ |
|
|
|
URL_ADMIN_USER_GROUPS, URL_ADMIN_GROUP_PERMISSIONS, URL_ADMIN_USER_CLIENT_ROLES, URL_ADMIN_USER_STORAGE |
|
|
|
URL_ADMIN_USER_GROUPS, URL_ADMIN_GROUP_PERMISSIONS, URL_ADMIN_USER_CLIENT_ROLES, URL_ADMIN_USER_STORAGE, \ |
|
|
|
URL_ADMIN_CLIENT_AUTHZ_SETTINGS, URL_ADMIN_CLIENT_AUTHZ_RESOURCES, URL_ADMIN_IDPS |
|
|
|
|
|
|
|
from .keycloak_openid import KeycloakOpenID |
|
|
|
|
|
|
@ -556,17 +557,44 @@ class KeycloakAdmin: |
|
|
|
clients = self.get_clients() |
|
|
|
|
|
|
|
for client in clients: |
|
|
|
if client_name == client['name']: |
|
|
|
if client_name == client.get('name') or client_name == client.get('clientId'): |
|
|
|
return client["id"] |
|
|
|
|
|
|
|
return None |
|
|
|
|
|
|
|
def get_client_authz_settings(self, client_id): |
|
|
|
""" |
|
|
|
Get authorization json from client. |
|
|
|
|
|
|
|
:param client_id: id in ClientRepresentation |
|
|
|
http://www.keycloak.org/docs-api/3.3/rest-api/index.html#_clientrepresentation |
|
|
|
:return: Keycloak server response |
|
|
|
""" |
|
|
|
|
|
|
|
params_path = {"realm-name": self.realm_name, "id": client_id} |
|
|
|
data_raw = self.connection.raw_get(URL_ADMIN_CLIENT_AUTHZ_SETTINGS.format(**params_path)) |
|
|
|
return data_raw |
|
|
|
|
|
|
|
def get_client_authz_resources(self, client_id): |
|
|
|
""" |
|
|
|
Get resources from client. |
|
|
|
|
|
|
|
:param client_id: id in ClientRepresentation |
|
|
|
http://www.keycloak.org/docs-api/3.3/rest-api/index.html#_clientrepresentation |
|
|
|
:return: Keycloak server response |
|
|
|
""" |
|
|
|
|
|
|
|
params_path = {"realm-name": self.realm_name, "id": client_id} |
|
|
|
data_raw = self.connection.raw_get(URL_ADMIN_CLIENT_AUTHZ_RESOURCES.format(**params_path)) |
|
|
|
return data_raw |
|
|
|
|
|
|
|
def create_client(self, payload, skip_exists=False): |
|
|
|
""" |
|
|
|
Create a client |
|
|
|
|
|
|
|
ClientRepresentation: http://www.keycloak.org/docs-api/3.3/rest-api/index.html#_clientrepresentation |
|
|
|
|
|
|
|
:param skip_exists: Skip if client already exist. |
|
|
|
:param payload: ClientRepresentation |
|
|
|
:return: Keycloak server response (UserRepresentation) |
|
|
|
""" |
|
|
|