Keycloak - Назначить пользователя в группу из регистрационной формы - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь создать пользовательскую форму регистрации в Keycloak, которая создаст пользователя и назначит его группе в зависимости от выпадающего списка команды. Вот пример моей проблемы:
У меня есть несколько команд, которые будут использовать keycloak, и у каждой команды будет своя собственная группа в keycloak, определяющая все роли, к которым им нужен доступ. Одно из приложений, которое будет использовать аутентификацию keycloak, - это Grafana. Когда пользователь заходит в Grafana и пытается зарегистрировать новую учетную запись с помощью keycloak, он создает пользователя, но поскольку пользователь не назначен в группу, он попадает на страницу с ошибкой в ​​Grafana, потому что у него нет никаких привилегий. ,
Я пытаюсь ограничить объем ручной работы, чтобы назначать сотни пользователей группам после их регистрации. У меня нет доступа к LDAP или Active Directroy.

Вот пример того, что я попробовал в моем пользовательском шаблоне register.ftl.

        <div class="${properties.kcFormGroupClass!} ${messagesPerField.printIfExists('team',properties.kcFormGroupErrorClass!)}">
            <div class="${properties.kcLabelWrapperClass!}">
                <label for="groups" class="${properties.kcLabelClass!}">Team</label>
            </div>

            <div class="${properties.kcInputWrapperClass!}">
                <select class="${properties.kcInputClass!}" id="groups" name="groups" value="${(register.formData['groups']!'')}">
                    <option value="group1">Group 1</option>
                    <option value="group2">Group 2</option>
                    <option value="group3">Group 3</option>
                </select>

            </div>
        </div>

Мне удалось добавить группу в качестве атрибута пользователя, и затем подумал, что смогу выполнить сценарий, после чего использовать API остальных, чтобы затем назначить группу, но мне тоже не повезло с этим. Я хотел бы не назначать всех в группу «только для просмотра» по умолчанию, поскольку некоторые группы не должны иметь возможность просматривать все приложения, которые мы будем использовать.

Если у кого-то есть идеи или они могут помочь мне указать верное направление, пожалуйста, дайте мне знать. У меня ограниченные знания HTML & Javascript, но я знаю, как обходить Python.

...