TGViewer
ServerAdmin.ru ServerAdmin.ru @srv_admin · 32.6K subscribers
Post #3594 12.6K
​​Когда у вас появляется несколько сервисов, остро встаёт вопрос с управлением пользователями. Хочется всё это делать в одном месте, а не ходить по разным системам и актуализировать там учётные данные. Решений этой задачи не так много. Чаще всего используют тот или иной 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
  • 👍 112
  • 👎 1
More from @srv_admin
  1. Sep 23, 2026Очередная подборка статей авторов, которые согласились в ней участвовать. Кто не понимает,…
  2. Sep 23, 2026Контейнеры в одном инструменте, виртуалки — в другом, частное облако — вообще отдельная ис…
  3. Sep 23, 2026Расскажу тем, кто не знает, и напомню тем, кто забыл, как я. Не надо в Proxmox в LXC конте…
  4. Sep 22, 2026Недавно случайно заметил любопытную информацию на тему Proxmox VE и новой функциональности…
  5. Sep 22, 2026✔️ Сети для всех — сообщество для тех, кто развивается в сетевом и системном администриров…
  6. Sep 22, 2026Я ранее уже рассказывал, что приобрёл себе домой полноценную серверную платформу на базе S…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →