Настройка SAML с Microsoft Entra ID
Grafana поддерживает аутентификацию пользователей через Microsoft Entra ID.
Note
Начиная с Grafana v11.2 интеграция SAML предоставляет механизм для получения групп пользователей из Graph API.
Версии Grafana 11.1 и ниже не поддерживают получение групп из конечной точки Graph API. В результате пользователи с более чем 150 группами не смогут получить свои группы. Вместо этого используйте коннектор Entra ID.
Связанные ссылки:
Перед началом
Убедитесь, что у вас есть разрешение администрировать аутентификацию SAML. Дополнительную информацию о ролях и разрешениях в Grafana см. в разделе Роли и разрешения.
Если у вас есть пользователи, принадлежащие более чем к 150 группам, настройте зарегистрированное приложение, чтобы предоставить Entra ID Graph API для получения групп. См. Настройка приложений Entra ID Graph API.
Генерация самоподписанных сертификатов
Entra ID требует сертификат для проверки подписи запросов SAML. Вы можете сгенерировать приватный ключ и самоподписанный сертификат с помощью следующей команды (приватный ключ используется для подписи запросов, а сертификат содержит публичный ключ для проверки):
$ openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
Это сгенерирует файлы key.pem и cert.pem, которые вы можете использовать для параметров конфигурации private_key_path и certificate_path.
Добавление Microsoft Entra SAML Toolkit из галереи
- Перейдите на портал Azure и войдите со своей учётной записью Entra ID.
- Найдите Enterprise Applications.
- В области Enterprise applications выберите New application.
- В поле поиска введите SAML Toolkit, затем выберите Microsoft Entra SAML Toolkit из панели результатов.
- Добавьте описательное имя и выберите Create.
Настройка конечных точек приложения SAML Toolkit
Чтобы проверять пользователей Entra ID с помощью Grafana, вам нужно настроить конечные точки приложения SAML Toolkit, создав новую интеграцию SAML в организации Entra ID.
Для следующей конфигурации мы будем использовать
https://localhostв качестве URL Grafana. Замените его на ваш URL Grafana.
- В приложении SAML Toolkit выберите Set up single sign-on.
- В области Single sign-on выберите SAML.
- В области Set up Single Sign-On with SAML выберите значок карандаша для Basic SAML Configuration, чтобы изменить настройки.
- В области Basic SAML Configuration нажмите кнопку Edit и обновите следующие поля:
- В поле Identifier (Entity ID) введите
https://localhost/saml/metadata. - В поле Reply URL (Assertion Consumer Service URL) введите
https://localhost/saml/acs. - В поле Sign on URL введите
https://localhost. - В поле Relay State введите
https://localhost. - В поле Logout URL введите
https://localhost/saml/slo.
- В поле Identifier (Entity ID) введите
- Выберите Save.
- В разделе SAML Certificate скопируйте App Federation Metadata Url.
- Используйте этот URL в поле
idp_metadata_urlв файлеcustom.ini.
- Используйте этот URL в поле
Генерация client secret
- В области Overview выберите Certificates & secrets.
- Выберите New client secret.
- В области Add a client secret введите описание для секрета.
- Установите дату истечения для секрета.
- Выберите Add.
- Скопируйте значение секрета. Это значение используется в поле
client_secretв конфигурации SAML.
Настройка утверждений SAML для использования провижининга SCIM
Чтобы проверить, что вошедший в систему пользователь — это тот же пользователь, который был провижинен через Entra ID, вам нужно включить тот же externalId в утверждение SAML, сопоставив утверждение SAML assertion_attribute_external_id.
- Откройте своё приложение Entra ID.
- Выберите конфигурацию единого входа SAML.
- Отредактируйте раздел
Attributes & Claims. - Добавьте новое утверждение со следующими настройками:
- Name:
userUID - Namespace: оставьте пустым
- Source: Attribute
- Source attribute:
user.objectId
- Name:
- Save текущую конфигурацию.
Настройте вашу конфигурацию сопоставления пользователей для использования URI Entra ID
Если утверждения URI по умолчанию не работают, настройте своё сопоставление пользователей следующим образом:
- Name attribute = http://schemas.microsoft.com/identity/claims/displayname
- Login attribute = http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
- Email attribute = http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
Настройка приложения Graph API в Entra ID
Хотя вы можете настроить тенант Entra ID в Grafana через SAML, некоторая дополнительная информация доступна только через Graph API. Чтобы получить эту информацию, создайте новое приложение в Entra ID и предоставьте ему необходимые разрешения. Чтобы узнать больше, см. Ограничения Entra ID SAML.
В следующем примере конфигурации используется URL https://localhost в качестве URL Grafana. Замените его на URL вашего экземпляра Grafana.
Создание новой регистрации приложения
Эта регистрация приложения используется как сервисная учётная запись для получения дополнительной информации о пользователе Entra ID.
- Перейдите на портал Azure и войдите со своей учётной записью Entra ID.
- В панели навигации слева выберите службу Microsoft Entra ID, а затем выберите App registrations.
- Нажмите кнопку New registration.
- В области Register an application введите имя для приложения.
- В разделе Supported account types выберите типы учётных записей, которые могут использовать приложение.
- В разделе Redirect URI выберите Web и введите
https://localhost/login/azuread. - Нажмите кнопку Register.
Настройка разрешений для приложения
- В области обзора найдите раздел API permissions и выберите Add a permission.
- В области Request API permissions выберите Microsoft Graph и нажмите Application permissions.
- В области Select permissions в разделе GroupMember выберите GroupMember.Read.All.
- В области Select permissions в разделе User выберите User.Read.All.
- Нажмите кнопку Add permissions в нижней части страницы.
- В области Request API permissions выберите Microsoft Graph и нажмите Delegated permissions.
- В области Select permissions в разделе User выберите User.Read.
- Нажмите кнопку Add permissions в нижней части страницы.
- В разделе API permissions выберите Grant admin consent for
<directory-name>.
Следующая таблица показывает, как выглядят разрешения на портале Entra ID:
Чтобы проверить, что Graph API имеет правильные разрешения, см. раздел Устранение неполадок вызовов Graph API.