菜单
Enterprise 开源

SSO 设置 API

如果您运行的是 Grafana Enterprise,某些端点需要特定的权限。请参阅 基于角色的访问控制权限 了解更多信息。

注意

自 Grafana 11 起可用。SAML 支持处于公开预览阶段,需启用 ssoSettingsSAML 功能开关。

此 API 可用于创建、更新、删除、获取和列出 OAuth2 和 SAML 的 SSO 设置。

此 API 管理的设置存储在数据库中,并会覆盖其他来源(参数、环境变量、设置文件等)的设置。因此,每次在运行时移除特定提供商的设置或重置为默认设置时,这些设置将按照反向优先顺序(arguments > environment variables > settings file)从其他来源继承。

列出 SSO 设置

GET /api/v1/sso-settings

列出所有提供商的 SSO 设置。

不由本 API 管理的提供商或 SSO 密钥将从其他来源(设置文件、环境变量、默认值)获取。

所需权限

有关说明,请参阅介绍中的注意。

操作范围
settings:readsettings:auth.{provider}:*

示例请求:

http
GET /api/v1/sso-settings HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

示例响应:

http
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 设置。

不由本 API 管理的 SSO 密钥将从其他来源(设置文件、环境变量、默认值)获取。

所需权限

有关说明,请参阅介绍中的注意。

操作范围
settings:readsettings:auth.{provider}:*

示例请求:

http
GET /api/v1/sso-settings/github HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

示例响应:

http
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 服务,无需重启实例。

注意

如果您在启用高可用性模式下运行 Grafana,配置更改可能不会立即应用到所有 Grafana 实例。您可能需要等待几分钟,直到配置传播到所有 Grafana 实例。

所需权限

有关说明,请参阅介绍中的注意。

操作范围
settings:writesettings:auth.{provider}:*

示例请求:

http
PUT /api/v1/sso-settings/github HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

{
  "settings": {
    "apiUrl": "https://api.github.com/user",
    "clientId": "my_github_client",
    "clientSecret": "my_github_secret",
    "enabled": true,
    "scopes": "user:email,read:org"
  }
}

示例响应:

http
HTTP/1.1 204
Content-Type: application/json

状态码

  • 204 – SSO 设置已更新
  • 400 – 错误请求
  • 401 – 未授权
  • 403 – 访问被拒绝

删除 SSO 设置

DELETE /api/v1/sso-settings/:provider

删除提供商现有的 SSO 设置条目。

所需权限

有关说明,请参阅介绍中的注意。

操作范围
settings:writesettings:auth.{provider}:*

示例请求:

http
DELETE /api/v1/sso-settings/azuread HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

示例响应:

http
HTTP/1.1 204
Content-Type: application/json

状态码

  • 204 – SSO 设置已删除
  • 400 – 错误请求
  • 401 – 未授权
  • 403 – 访问被拒绝
  • 404 – 未找到 SSO 设置