API настроек SSO
Note
Starting in Grafana 13,
/apiendpoints are being deprecated in favor of the/apisroute. Note that while Grafana is working on migrating existing APIs, currently there may not be an exact match to the legacy API you’re using.This change doesn’t disrupt or break your current setup. Legacy APIs are not being disabled and remain fully accessible and operative, but
/apiroutes will no longer be updated.To learn more refer to the new API structure in Grafana.
Если вы используете Grafana Enterprise, для некоторых конечных точек потребуются определённые права. Дополнительные сведения см. в разделе Права управления доступом на основе ролей.
Этот API можно использовать для создания, обновления, удаления, получения и перечисления настроек SSO для OAuth2 и SAML.
Настройки, управляемые этим API, хранятся в базе данных и переопределяют
настройки из других источников
(аргументы, переменные среды, файл настроек и т. д.).
Поэтому каждый раз, когда настройки конкретного провайдера удаляются или сбрасываются к значениям по умолчанию во время выполнения,
настройки наследуются из других источников в обратном порядке приоритета
(аргументы > переменные среды > файл настроек).
Получение списка настроек SSO
GET /api/v1/sso-settings
Возвращает список настроек SSO для всех провайдеров.
Провайдеры или ключи SSO, не управляемые этим API, берутся из других источников (файл настроек, переменные среды, значения по умолчанию).
Требуемые права
Пояснения см. в примечании во введении.
Пример запроса:
GET /api/v1/sso-settings HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>
Пример ответа:
HTTP/1.1 200
Content-Type: application/json
[
{
"id": "1",
"provider": "github",
"settings": {
"apiUrl": "https://api.github.com/user",
"clientId": "my_github_client",
"clientSecret": "*********",
"enabled": true,
"scopes": "user:email,read:org"
// rest of the settings
},
"source": "system",
},
{
"id": "2",
"provider": "azuread",
"settings": {
"authUrl": "https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/oauth2/v2.0/authorize",
"clientId": "my_azuread_client",
"clientSecret": "*********",
"enabled": true,
"scopes": "openid,email,profile"
// rest of the settings
},
"source": "system",
}
]
Коды состояния:
- 200 – Настройки SSO найдены
- 400 – Некорректный запрос
- 401 – Не авторизован
- 403 – Доступ запрещён
Получение настроек SSO
GET /api/v1/sso-settings/:provider
Возвращает настройки SSO для провайдера.
Ключи SSO, не управляемые этим API, берутся из других источников (файл настроек, переменные среды, значения по умолчанию).
Требуемые права
Пояснения см. в примечании во введении.
Пример запроса:
GET /api/v1/sso-settings/github HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>
Пример ответа:
HTTP/1.1 200
Content-Type: application/json
ETag: db87f729761898ee
{
"id": "1",
"provider": "github",
"settings": {
"apiUrl": "https://api.github.com/user",
"clientId": "my_github_client",
"clientSecret": "*********",
"enabled": true,
"scopes": "user:email,read:org"
// rest of the settings
},
"source": "system",
}
Коды состояния:
- 200 – Настройки SSO найдены
- 400 – Некорректный запрос
- 401 – Не авторизован
- 403 – Доступ запрещён
- 404 – Настройки SSO не найдены
Обновление настроек SSO
PUT /api/v1/sso-settings/:provider
Обновляет настройки SSO для провайдера.
Когда вы отправляете новые настройки провайдера через API, Grafana проверяет, допустимы ли и корректны ли заданные настройки. Если да, Grafana сохраняет настройки в базе данных и перезагружает сервисы Grafana без необходимости перезапускать экземпляр.
Note
Если вы используете Grafana в режиме высокой доступности, изменения конфигурации могут примениться не ко всем экземплярам Grafana сразу. Возможно, придётся подождать несколько минут, пока конфигурация распространится на все экземпляры Grafana.
Требуемые права
Пояснения см. в примечании во введении.
Пример запроса:
PUT /api/v1/sso-settings/github HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>
{
"settings": {
"apiUrl": "https://api.github.com/user",
"clientId": "my_github_client",
"clientSecret": "my_github_secret",
"enabled": true,
"scopes": "user:email,read:org"
}
}
Пример ответа:
HTTP/1.1 204
Content-Type: application/json
Коды состояния:
- 204 – Настройки SSO обновлены
- 400 – Некорректный запрос
- 401 – Не авторизован
- 403 – Доступ запрещён
Удаление настроек SSO
DELETE /api/v1/sso-settings/:provider
Удаляет существующую запись настроек SSO для провайдера.
Требуемые права
Пояснения см. в примечании во введении.
Пример запроса:
DELETE /api/v1/sso-settings/azuread HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>
Пример ответа:
HTTP/1.1 204
Content-Type: application/json
Коды состояния:
- 204 – Настройки SSO удалены
- 400 – Некорректный запрос
- 401 – Не авторизован
- 403 – Доступ запрещён
- 404 – Настройки SSO не найдены