SSO配置之grafana

946 阅读1分钟

SSO 简介

单点登录(SSO)是一种身份验证解决方案,可让用户通过一次性用户身份验证登录多个应用程序和网站。 鉴于当今的用户经常直接从其浏览器访问应用程序,因此组织正在优先考虑改善安全性和用户体验的访问管理策略。 SSO 兼具这两方面的优点,因为一旦验证身份,用户就可以访问所有受密码保护的资源,而无需重复登录

相关组件

比如

等等,还有很多商业化项目比如 Auth0, Okta 等。

authentik 安装

详细安装可以参考 kubernetes快速部署authentik

grafana 安装

详细的安装可以参考 kubernetes快速部署grafana

authentik 配置

新建一个provider

只需要输入 Name 就可以了

image.png

新建一个 Application

也是只需要输入 Name 就可以了,然后选择刚刚创建的 Provider

image.png

grafana 配置

helm values 增加配置

grafana:
  extraEnvVarsCM: "grafana-extra-cm"
  extraEnvVarsSecret: "grafana-extra-secret"
apiVersion: v1
kind: ConfigMap
metadata:
  name: grafana-extra-cm
  # 命名空间有需要也要设置下
data:
  GF_AUTH_GENERIC_OAUTH_ENABLED: "true"
  GF_SERVER_ROOT_URL: https://grafana.example.com
  GF_AUTH_GENERIC_OAUTH_NAME: "authentik"
  GF_AUTH_GENERIC_OAUTH_SCOPES: "openid profile email"
  GF_AUTH_GENERIC_OAUTH_AUTH_URL: "https://account.example.com/application/o/authorize/"
  GF_AUTH_GENERIC_OAUTH_TOKEN_URL: "https://account.example.com/application/o/token/"
  GF_AUTH_GENERIC_OAUTH_API_URL: "https://account.example.com/application/o/userinfo/"
  GF_AUTH_SIGNOUT_REDIRECT_URL: "https://account.example.com/application/o/grafana/end-session/"
  GF_AUTH_GENERIC_OAUTH_ROLE_ATTRIBUTE_PATH: "contains(groups[*], 'grafana-admin') && 'Admin' || contains(groups[*], 'grafana-editors') && 'Editor' || 'Viewer'"
  # 禁用登录表单,第一次可以设置为 false,第一个admin登录以后设置成grafana admin,后续这里可以设置为 true,关闭登录
  GF_AUTH_DISABLE_LOGIN_FORM: "true"
apiVersion: v1
kind: Secret
metadata:
  name: grafana-extra-secret
  # 命名空间有需要也要设置下
type: Opaque
stringData:
  GF_AUTH_GENERIC_OAUTH_CLIENT_ID: "${YOUR_OAUTH_CLIENT_ID}"
  GF_AUTH_GENERIC_OAUTH_CLIENT_SECRET: "${OAUTH_CLIENT_SECRET}"

结果

访问 grafana 网址, 此处为 http://grafana.example.com

image.png

现在可以使用 authentik 来登录 grafana 了