Двухфакторная аутентификация для Grafana
Описание
Grafana умеет аутентифицировать пользователей в каталоге по протоколу LDAP — параметры задаются в файле ldap.toml. Если указать в нём адрес локального инстанса Simple2FA вместо адреса контроллера домена, вход в Grafana получит второй фактор: пользователь подтверждает вход на своём устройстве, и только после этого открывается сессия.
Метод подключения — LDAP-прокси. Второй фактор подтверждается push-уведомлением в мобильном приложении, в Telegram или в MAX.
Схема работы:
- Пользователь открывает Grafana и вводит логин и пароль.
- Grafana обращается по LDAP к локальному инстансу Simple2FA.
- Инстанс проверяет логин и пароль в каталоге организации.
- Инстанс запрашивает у пользователя подтверждение вторым фактором.
- Пользователь подтверждает вход, и Grafana открывает сессию.
Перед началом работы
- В глобальных настройках инстанса включён LDAP-прокси, порты опубликованы на хосте — шаги 1 и 2 общей инструкции.
- С сервера Grafana открыт доступ к инстансу по порту LDAP (
1389) или LDAPS (1636). - DN сервисной учётной записи добавлен в список сервисных в глобальных настройках Simple2FA.
- Сохранён доступ под локальным администратором Grafana (
admin) — он не зависит от настроек LDAP.
Подготовка в Simple2FA
В панели администратора создайте ресурс:
| Поле | Значение |
|---|---|
| Название | Grafana |
| Протокол | LDAP |
| CIDR клиентов LDAP | IP-адрес сервера Grafana, например 10.0.0.80/32 |
| Проверять первый фактор | Включить |
| Поставщики учётных записей | Каталог, в котором проверяется пароль |
| Использовать кеширование сессий | Включить |
Добавьте ресурс в группу пользователей, которым разрешён вход в Grafana.
Настройка Grafana
Включение LDAP
В grafana.ini (обычно /etc/grafana/grafana.ini) включите LDAP и укажите путь к файлу настроек:
[auth.ldap]
enabled = true
config_file = /etc/grafana/ldap.toml
allow_sign_up = true
Файл ldap.toml
[[servers]]
host = "simple2fa.example.local"
port = 1389
use_ssl = false
start_tls = false
ssl_skip_verify = false
timeout = 90
bind_dn = "CN=ldapbind,CN=Users,DC=example,DC=local"
bind_password = "пароль сервисной учётной записи"
search_filter = "(sAMAccountName=%s)"
search_base_dns = ["DC=example,DC=local"]
[servers.attributes]
name = "givenName"
surname = "sn"
username = "sAMAccountName"
member_of = "memberOf"
email = "mail"
[[servers.group_mappings]]
group_dn = "*"
org_role = "Viewer"
Что здесь важно:
- host и port — адрес локального инстанса Simple2FA и порт слушателя:
1389или1636; - use_ssl / start_tls — шифрование:
use_ssl = trueс портом1636либоstart_tls = trueс портом1389. Оставьтеssl_skip_verify = falseи сделайте сертификат инстанса доверенным на сервере Grafana; - timeout —
90секунд, чтобы пользователь успел подтвердить вход. Значение по умолчанию (10 секунд) для второго фактора мало; - bind_dn и bind_password — сервисная учётная запись каталога; её DN должен быть в списке сервисных в Simple2FA;
- search_filter и search_base_dns — поиск в вашем каталоге:
sAMAccountNameдля Active Directory,uidдля типового LDAP-каталога; - group_mappings — без сопоставления групп Grafana не пустит пользователя. Шаблон
*выдаёт роль всем прошедшим проверку; для разграничения по группам укажите их DN отдельными блоками.
Перезапустите Grafana:
systemctl restart grafana-server
Проверка LDAP в интерфейсе Grafana
Страница Administration → Authentication → LDAP проверяет соединение и сопоставление атрибутов под сервисной учётной записью — второй фактор при этом не запрашивается. Реальную работу интеграции проверяйте входом тестового пользователя.
Проверка работы
- Откройте страницу входа Grafana в приватном окне браузера, не закрывая текущую сессию администратора.
- Введите логин и пароль тестового пользователя каталога.
- Дождитесь запроса подтверждения и подтвердите вход.
- Убедитесь, что Grafana открыла сессию, а в журнале «Попытки авторизации» появилась успешная попытка на ресурсе Grafana.
Если вход не проходит, посмотрите лог Grafana (/var/log/grafana/grafana.log): в нём видно, дошёл ли запрос до инстанса и на каком шаге он отклонён.
Смотрите также
- Приложения с входом по LDAP — общая часть настройки и диагностика
- Ресурсы
- Настройка ресурсов