diff --git a/admin/src/saml_scripts/keycloak_config.py b/admin/src/saml_scripts/keycloak_config.py new file mode 100644 index 0000000..7b8d28f --- /dev/null +++ b/admin/src/saml_scripts/keycloak_config.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python +# coding=utf-8 +import json +from lib.keycloak_client import KeycloakClient +import logging as log + +class KeycloakConfig: + def __init__(self): + self.keycloak = KeycloakClient() + + def config_realm_update(self,path_json="/admin/custom/keycloak/realm.json"): + self.keycloak.connect() + k = self.keycloak.keycloak_admin + + with open(path_json) as json_file: + d_update = json.load(json_file) + k.update_realm("master",d_update) + + def config_role_list(self): + self.keycloak.connect() + k = self.keycloak.keycloak_admin + + name_protocol_mapper = "role list" + id_client_scope_role_list = [a["id"] for a in k.get_client_scopes() if a["name"] == "role_list"][0] + d = k.get_client_scope(id_client_scope_role_list) + d_mapper = [a for a in d["protocolMappers"] if a["name"] == name_protocol_mapper][0] + id_mapper = d_mapper["id"] + + # Single Role Attribute = On + d_mapper['config']['single'] = 'true' + + k.update_mapper_in_client_scope(id_client_scope_role_list, + id_mapper, + d_mapper) + +if __name__ == "__main__": + keycloack_config = KeycloakConfig() + keycloack_config.config_realm_update() + keycloack_config.config_role_list() + \ No newline at end of file