夜莺V8嵌入Grafana SSO登陆

2026-08-06 35 0

前面夜莺已经配置KeyCloak OIDC SSO登陆SSO单点登录 KeyCloak+Postgres部署及对接Grafana
,这里再打通下夜莺嵌入Grafana SSO登陆

https://flashcat.cloud/blog/nightingale-integrate-grafana/

  • 夜莺和 Grafana 都接入同一个 OIDC 单点登录系统。
  • 用户从夜莺登录后,可以在夜莺中访问内嵌的 Grafana。
  • Grafana 发现用户未登录时跳转到 SSO,因为用户已经在 SSO 登录过,所以会自动跳转回来。
  • 终端用户感知上,就像夜莺和 Grafana 共享了登录状态。

配置

  • 夜莺和 Grafana 要求使用HTTPS协议
  • Grafana 需要配置 allow_embedding = true,否则无法在夜莺 iframe 中嵌入。
  • cookie_samesite = none 和 cookie_secure = true 
# docker-compose.yaml
services:
  grafana:
    image: grafana/grafana:13.0
    container_name: grafana
    restart: unless-stopped
    ports:
      - '3000:3000'
    environment:
        GF_SERVER_ROOT_URL: "https://grafana.sundayhk.com"
        GF_AUTH_GENERIC_OAUTH_ENABLED: "true"
        GF_AUTH_GENERIC_OAUTH_NAME: "SSO"
        GF_AUTH_GENERIC_OAUTH_ALLOW_SIGN_UP: "true"
        GF_AUTH_GENERIC_OAUTH_CLIENT_ID: "grafana"
        GF_AUTH_GENERIC_OAUTH_CLIENT_SECRET: "1hb5GNFQbExATBD6ovvqPBJxxxxxxxxxxxxxxxxxxx"
        GF_AUTH_GENERIC_OAUTH_SCOPES: "openid email profile offline_access roles"
        GF_AUTH_GENERIC_OAUTH_EMAIL_ATTRIBUTE_PATH: "email"
        GF_AUTH_GENERIC_OAUTH_LOGIN_ATTRIBUTE_PATH: "username"
        GF_AUTH_GENERIC_OAUTH_NAME_ATTRIBUTE_PATH: "full_name"
        GF_AUTH_GENERIC_OAUTH_AUTH_URL: "https://sso.sundayhk.com/realms/xwx/protocol/openid-connect/auth"
        GF_AUTH_GENERIC_OAUTH_TOKEN_URL: "https://sso.sundayhk.com/realms/xwx/protocol/openid-connect/token"
        GF_AUTH_GENERIC_OAUTH_API_URL: "https://sso.sundayhk.com/realms/xwx/protocol/openid-connect/userinfo"
        GF_AUTH_GENERIC_OAUTH_ROLE_ATTRIBUTE_PATH: "contains(resource_access.grafana.roles[*], 'admin') && 'Admin' || contains(resource_access.grafana.roles[*], 'editor') && 'Editor' || 'Viewer'"
        GF_AUTH_GENERIC_OAUTH_ALLOW_ASSIGN_GRAFANA_ADMIN: "true"
        GF_AUTH_GENERIC_OAUTH_ROLE_ATTRIBUTE_STRICT: "false"
      # 新增配置
        GF_SECURITY_ALLOW_EMBEDDING: "true" # 允许iframe嵌入
        GF_SECURITY_COOKIE_SAMESITE: "none"
        GF_SECURITY_COOKIE_SECURE: "true"
      #  GF_AUTH_ANONYMOUS_ENABLED: "true" # 允许匿名访问, 看板不需要登录就能在iframe查看
      #  GF_AUTH_ANONYMOUS_ORG_ROLE: "Viewer "
      #  GF_LOG_LEVEL: "debug

    volumes:
      #- grafana-storage:/var/lib/grafana
      - /etc/localtime:/etc/localtime:ro
      - ./grafana-data:/var/lib/grafana

夜莺-系统集成-新增 Grafana 链接使用https

image.png

夜莺使用SSO登陆后 集成中心 Grafana 使用SSO登陆会提示
sso.sundayhk.com 拒绝了我们的连接请求。

需要到KeyCloak 配置下,Grafana 再点击SSO 就可以直接登陆了

image.png

  • X-Frame-Options: 清空
  • Content-Security-Policy Default:
    frame-src 'self'; frame-ancestors 'self' https://*.sundayhk.com; object-src 'none';

相关文章

SSO单点登陆 KeyCloak 对接夜莺V8
SSO单点登录 KeyCloak+Postgres部署及对接Grafana

发布评论