Аутентификация SAML в Grafana
Note
Доступно в Grafana Enterprise и Grafana Cloud.
Интеграция аутентификации SAML позволяет вашим пользователям Grafana входить в систему, используя внешний провайдер идентификации (IdP) SAML 2.0. Чтобы включить это, Grafana становится поставщиком услуг (SP) в процессе аутентификации, взаимодействуя с IdP для обмена информацией о пользователе.
Варианты настройки аутентификации SAML в Grafana
Вы можете настроить аутентификацию SAML в Grafana разными методами. Хотя параметры конфигурации не меняются, если вы хотите держать все настройки аутентификации Grafana в одном месте, используйте файл конфигурации Grafana или провайдер Terraform. Если вы пользователь Grafana Cloud, у вас нет доступа к файлу конфигурации Grafana. Вместо этого настройте SAML через другие методы.
Caution
Конфигурация в API или интерфейсе имеет приоритет над конфигурацией в файле конфигурации Grafana. Настройки SAML из API переопределят любую конфигурацию SAML, заданную в файле конфигурации Grafana.
Дополнительную информацию о том, как Grafana определяет порядок приоритета своих настроек, см. в SSO Settings API.
Доступны следующие методы:
- Настройка SAML с помощью SSO Settings API
- Настройка SAML с помощью пользовательского интерфейса SAML
- Настройка SAML с помощью файла конфигурации Grafana — недоступно в Grafana Cloud
- Настройка SAML с помощью провайдера Grafana Terraform
Если вы используете Okta или Entra ID в качестве провайдера идентификации, см. следующую документацию по настройке:
Привязки SAML
Grafana поддерживает следующие привязки SAML 2.0:
-
От поставщика услуг (SP) к провайдеру идентификации (IdP):
- Привязка
HTTP-POST - Привязка
HTTP-Redirect
- Привязка
-
От провайдера идентификации (IdP) к поставщику услуг (SP):
- Привязка
HTTP-POST
- Привязка
Инициирование запросов
Grafana поддерживает:
- Запросы, инициированные SP
- Запросы, инициированные IdP
По умолчанию включены запросы, инициированные SP. Инструкции о том, как включить входы, инициированные IdP, см. в разделе Единый вход (SSO), инициированный IdP.
Регистрация провайдера идентификации (IdP)
Чтобы интеграция SAML работала корректно, вам нужно уведомить ваш IdP о том, что Grafana является SP.
Интеграция предоставляет две ключевые конечные точки как часть Grafana:
- Конечная точка
/saml/metadata, которая содержит метаданные SP. Вы можете либо скачать и загрузить их вручную, либо заставить IdP запрашивать их напрямую с конечной точки. Некоторые провайдеры называют это Identifier или Entity ID. - Конечная точка
/saml/acs, которая предназначена для получения обратного вызова ACS (Assertion Customer Service). Некоторые провайдеры называют это SSO URL или Reply URL.
Метаданные IdP
Вам также нужно определить публичную часть IdP для проверки сообщений. XML-метаданные IdP SAML определяют, где и как Grafana обменивается информацией о пользователе.
Grafana поддерживает три способа указания метаданных IdP.
- Без суффикса
idp_metadataGrafana предполагает содержимое XML-файла в кодировке base64. - С суффиксом
_pathGrafana предполагает путь и пытается прочитать файл из файловой системы. - С суффиксом
_urlGrafana предполагает URL и пытается загрузить метаданные из указанного расположения.
Сопоставление утверждений
Во время процесса аутентификации SAML SSO Grafana получает обратный вызов ACS. Обратный вызов содержит всю соответствующую информацию об аутентифицируемом пользователе, встроенную в ответ SAML. Grafana разбирает ответ, чтобы создать (или обновить) пользователя в своей внутренней базе данных.
Чтобы Grafana могла сопоставить информацию о пользователе, она смотрит на отдельные атрибуты внутри утверждения. Вы можете думать об этих атрибутах как о парах Ключ/Значение (хотя они содержат больше информации, чем это).
Grafana предоставляет параметры конфигурации, которые позволяют изменить, на какие ключи смотреть для этих значений. Данные, которые нам нужны для создания пользователя в Grafana: Name, Login handle и email.
Интеграция с провижинингом SCIM
Если вы также используете провижининг SCIM для этого приложения Grafana в Entra ID, крайне важно согласовать идентификаторы пользователей между SAML и SCIM для бесшовной работы. Уникальный идентификатор, который связывает пользователя SAML с пользователем, провижиненным через SCIM, определяется настройкой assertion_attribute_external_uid в конфигурации Grafana SAML. Этот assertion_attribute_external_uid должен соответствовать externalId, используемому в провижининге SCIM (обычно устанавливается в Entra ID user.objectid).
-
Обеспечьте согласованный идентификатор в утверждении SAML:
- Уникальный идентификатор из Entra ID (обычно
user.objectid), который вы сопоставили с атрибутомexternalIdв Grafana в вашей настройке провижининга SCIM, также должен отправляться как утверждение в утверждении SAML. Дополнительные сведения о SCIM см. в документации по провижинингу SCIM. - В корпоративном приложении Entra ID в разделе Single sign-on > Attributes & Claims убедитесь, что вы добавили утверждение, которое предоставляет этот идентификатор. Например, вы можете добавить утверждение с именем
UserID(или похожее, напримерexternalId), которое берёт своё значение изuser.objectid.
- Уникальный идентификатор из Entra ID (обычно
-
Настройте параметры Grafana SAML для SCIM:
- В разделе
[auth.saml]вашей конфигурации Grafana установитеassertion_attribute_external_uidв имя утверждения SAML, которое вы настроили на предыдущем шаге (например,userUIDили полный URI, такой какhttp://schemas.microsoft.com/identity/claims/objectidentifier, если Entra ID отправляет его именно так). - Настройка
assertion_attribute_loginвсё ещё должна быть настроена на сопоставление с атрибутом, с которым будут входить ваши пользователи (например,userPrincipalName,mail).
Пример конфигурации Grafana:
[auth.saml] # ... other SAML settings ... assertion_attribute_login = http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier # Or other login attribute assertion_attribute_external_uid = http://schemas.microsoft.com/identity/claims/objectidentifier # Or your custom claim name for user.objectidУбедитесь, что значение, указанное в
assertion_attribute_external_uid, точно совпадает с именем утверждения, как оно отправляется в утверждении SAML от Entra ID. - В разделе
-
Идентификатор связывания SCIM и Entra ID:
- По умолчанию (если
assertion_attribute_external_uidне задан) Grafana использует атрибутuserUIDиз утверждения SAML для связывания SCIM. - Рекомендуется для Entra ID: Для интеграции SCIM с Entra ID необходимо:
- Убедиться, что Entra ID отправляет
user.objectidв утверждении. - Либо задать имя этого утверждения в Entra ID как
userUID, либо, если вы хотите использовать другое имя утверждения, установитьassertion_attribute_external_uidв Grafana в соответствии с именем утверждения, которое вы выбрали в Entra ID.
- Убедиться, что Entra ID отправляет
- По умолчанию (если
Расширенная конфигурация
Для расширенной конфигурации и устранения неполадок обратитесь к одной из следующих страниц: