tgoop.com/srv_admin/3594
Last Update:
Когда у вас появляется несколько сервисов, остро встаёт вопрос с управлением пользователями. Хочется всё это делать в одном месте, а не ходить по разным системам и актуализировать там учётные данные. Решений этой задачи не так много. Чаще всего используют тот или иной LDAP каталог и настраивают софт на работу с ним. Либо второй вариант - настраивают сервис SSO (single sign-on, технология единого входа). В качестве бэкенда для хранения учётных данных может выступать тот же LDAP, внутренняя база SSO либо что-то другое.
Организация SSO более сложный, но в то же время более гибкий, функциональный вариант, нежели просто какой-то каталог. Схема там примерно такая получается. У вас есть некий сервис SSO, который интегрируется с рабочими службами, типа админки сайта, системы мониторинга, почты, VPN и т.д. Этот же сервис в качестве источника информации о пользователях использует какой-то бэкенд, например, тот же LDAP каталог или свою внутреннюю базу. Пользователь заходит в админку сайта. Ему предлагается пройти аутентификацию. Он это делает, админка связывается с SSO, та проверяет введённую учётку. Если всё ОК, то возвращает админке информацию о том, что аутентификация прошла успешно, а так же набор прав для этой учётки.
Есть относительно новый open source продукт в качестве SSO - Keycloak. Он в последние года 3-4 стал прям очень популярен. В основном из-за двух причин. Во-первых, бесплатных продуктов такого класса в целом не так много. Во-вторых, он относительно просто и быстро настраивается.
У Keycloak есть неплохая документация, по которой развернуть продукт очень просто. Далее всё управление через веб интерфейс, что тоже сильно упрощает настройку. То есть бувально:# docker run -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:24.0.2 start-dev
И идёте в веб интерфейс разбираться. Далее, к примеру, открываете руководство Grafana и настраиваете аутентификацию в ней через Keycloak. Алгоритм интеграции будет примерно такой:
1️⃣ Создаёте в Keycloak realm с нужными правами, которые поддерживает сервис. Например, с правами Admin, Viewer и Editor.
2️⃣ Далее создаёте отдельного клиента для Grafana с маппингом прав.
3️⃣ Создаёте пользователей в Keycloak с разными правами.
4️⃣ Добавляете в конфигурацию Grafana параметры из документации с учётом своих урлов и секрета клиента.
5️⃣ Пробуете зайти в Grafana, выбрав Sign in with Keycloak, и свою учётку в Keycloak.
Похожим образом настраивается интеграция с другими продуктами. Если они поддерживают такую интеграцию, то процесс будет максимально простым и быстрым. Достаточно будет создать реалм с нужными правами, клиента с маппингом прав, получить его секрет и использовать для интеграции.
В англоязычном интернете много статей с конкретными примерами интеграции различных сервисов и Keycloak. Всё современное и популярное его сейчас поддерживает, настраивается легко. С более старыми продуктами, типа postfix, dovecot будет посложнее, но в целом тоже решаемо. У postfix не видел поддержки, а у dovecot есть. Можно использовать его в качестве SASL (Simple Authentication and Security Layer). Проще ситуация, если используется веб интерфейс. Тот же Roundcube поддерживает Keycloak.
Так что если сейчас планируете построение каких-то информационных систем, сразу внедряйте SSO, чтобы потом не делать это уже по ходу дела.
#sso
BY ServerAdmin.ru

Share with your friend now:
tgoop.com/srv_admin/3594