Вопрос или проблема
Кажется, начиная с Keycloak 25 “Фильтр по клиентам” предварительно выбран в диалоге “Назначить роли”. Однако мы в основном работаем с ролями realm (в настоящее время Keycloak 26). Есть идеи, как сделать так, чтобы в Keycloak “Фильтр по ролям realm” снова был выбран по умолчанию, как это было до Keycloak 25? Это было бы замечательно.
.
Ответ или решение
Вопрос, который вы подняли, относится к изменениям в функциональности Keycloak, начиная с версии 25, где по умолчанию в диалоговом окне "Назначение ролей" предустанавливается фильтр "Filter by clients". Однако, если ваша рабочая среда в основном ориентирована на реалм-роли, это изменение может вызвать неудобства. Ваша цель заключается в том, чтобы "Filter by realm roles" был предустановленным значением по умолчанию. Давайте разберем, как можно добиться этого результата.
Теория
Keycloak — это система управления доступом с открытым исходным кодом, которая предлагает функции авторизации и аутентификации. В Keycloak доступ предоставляется через роли, которые подразделяются на два типа: клиентские роли (client roles) и реалм-роли (realm roles). Реалм-роли действуют на уровне всего пространства (реалма), тогда как клиентские роли ограничены рамками конкретного клиента.
В недавних версиях Keycloak, начиная с 25, разработчики сделали так, что в диалоговом окне назначения ролей по умолчанию используется фильтр по клиентам. Это изменение может быть связано с общими трендами в использовании Keycloak и предпочтениями пользователей, но, тем не менее, настраиваемость интерфейса остается важным аспектом для пользователей.
Пример
Рассмотрим сценарий, в котором организация использует Keycloak для управления доступом своих сотрудников и клиенты представлены отдельными приложениями, каждое из которых имеет свои требования к безопасности. Сотрудники, работая в различных отделах, требуют доступ к ролям на уровне всего реалма для осуществления междисциплинарных функций. Каждый раз, когда нужно назначить роли новому сотруднику, администраторы должны вручную переключать фильтр с клиентских ролей на реалм-роли, что создает дополнительные шаги в их рабочем процессе.
Применение
На текущий момент непосредственного конфигурационного параметра в Keycloak для изменения предустановки фильтра в диалоговом окне назначения ролей не предусмотрено. Однако, это не означает, что данная задача нерешаема. Рассмотрим несколько подходов:
-
Изменение исходного кода:
- Keycloak — это проект с открытым исходным кодом, и если у вас есть опыт работы с Java и Angular (технологиями, на которых основан Keycloak), вы можете модифицировать интерфейс пользователя под ваши нужды. Это требует изменения в коде приложения и пересборки системы. Определите, где происходит инициализация диалогового окна и внесите необходимые изменения в компонент, ответственный за выбор предустановки фильтра.
-
Создание расширения или модуля:
- Хотя это более сложный процесс, вы можете разработать свое собственное расширение для Keycloak, которое бы реализовывало нужную вам функцию. Это даст вам гибкость в поддержании данного функционала при обновлениях Keycloak.
-
Использование REST API:
- Если ваш процесс подразумевает автоматическое назначение ролей, вы можете написать скрипт, который взаимодействует с Keycloak через REST API и автоматически фильтрует роли по вашему требованию.
-
Интерактивность через пользовательские скрипты:
- Если у вас есть возможность использования скриптов для автоматизации, такие инструменты, как Selenium, могут помочь автоматизировать процесс навигации в интерфейсе.
-
Поддержка и фидбек разработчикам:
- Детальное описание вашей ситуации и ответ на изменения в интерфейсе может быть полезным для разработчиков Keycloak. Создайте заявку на GitHub, где детализируете свой кейс и предложите опцию конфигурации предустановленного фильтра.
Каждый из этих подходов имеет свои плюсы и минусы. Модификация кода предоставляет максимальную гибкость, но связана с необходимостью поддерживать изменения при обновлениях системы. Автоматизация процессов через API или скрипты предоставляет оперативное решение, но может не покрыть все случаи использования.
Подводя итог, выбор подхода к решению зависит от ваших технических возможностей, требований к функционалу и ресурсов, которые вы готовы инвестировать в решение этой задачи. Существует также возможность, что в будущих обновлениях Keycloak появится возможность конфигурации интерфейса более гибким образом, что полностью решит ваш вопрос.