出版日期:
我正在尝试在本地设置一个非常简单的配置
grafana
在默认端口3000
上运行oauth2_proxy
在默认端口4180
上运行
期望:
期望是:在使用google凭证通过oauth2_proxy
成功登录后,该登录在Grafana中“被保留”。但是,用户仅被重定向到Grafana登录页面。
重现步骤:创建以下空目录结构
/monitoring
/data/grafana
//这将作为grafana的装入卷/data/oauth2
//这将作为oauth2_proxy的装入卷
将下面的docker-compose.yaml
文件复制到/monitoring
文件夹中
停靠-编写.yaml
# docker-compose.yml
version: '3'
services:
grafana:
container_name: grafana
image: grafana/grafana:latest
restart: always
user: '104'
volumes:
- $PWD/data/grafana:/var/lib/grafana
ports:
- 3000:3000
environment:
# [users]
- GF_USERS_ALLOW_SIGN_UP=false
- GF_USERS_AUTO_ASSIGN_ORG=true
- GF_USERS_AUTO_ASSIGN_ORG_ROLE=Admin
# [auth]
- GF_AUTH_DISABLE_LOGIN_FORM=true
# [auth.generic_oauth]
- GF_AUTH_GENERIC_OAUTH_ENABLED=true
- GF_AUTH_GENERIC_OAUTH_NAME=OAuth
- GF_AUTH_GENERIC_OAUTH_ALLOW_SIGN_UP=true
- GF_AUTH_GENERIC_OAUTH_CLIENT_ID=<google_client_id>
- GF_AUTH_GENERIC_OAUTH_CLIENT_SECRET=<google_client_secret>
- GF_AUTH_GENERIC_OAUTH_SCOPES=openid email nickname
- GF_AUTH_GENERIC_OAUTH_AUTH_URL=http://localhost:4180/auth
- GF_AUTH_GENERIC_OAUTH_TOKEN_URL=http://localhost:4180/token
- GF_AUTH_GENERIC_OAUTH_API_URL=http://localhost:4180/userinfo
oauth2-proxy:
container_name: oauth2-proxy
image: quay.io/oauth2-proxy/oauth2-proxy:latest
restart: always
ports:
- 4180:4180
volumes:
- $PWD/data/oauth2:/var/lib/oauth2_proxy
environment:
- OAUTH2_PROXY_PROVIDER=oidc
- OAUTH2_PROXY_CLIENT_ID=<google_client_id>
- OAUTH2_PROXY_CLIENT_SECRET=<google_client_secret>
- OAUTH2_PROXY_OIDC_ISSUER_URL=https://accounts.google.com
- OAUTH2_PROXY_COOKIE_SECRET=<some_secret>
- OAUTH2_PROXY_COOKIE_DOMAIN=http://localhost:3000
- OAUTH2_PROXY_EMAIL_DOMAINS=*
- OAUTH2_PROXY_REDIRECT_URL=http://localhost:3000/oauth2/callback
- OAUTH2_PROXY_HTTP_ADDRESS=http://:4180
- OAUTH2_PROXY_UPSTREAMS=http://localhost:3000/
- OAUTH2_PROXY_COOKIE_SECURE=false
- OAUTH2_PROXY_ERRORS_TO_INFO_LOG=true
运行docker-compose up -d --build
个
运行Grafana:http://localhost:3000
个
到目前为止一切顺利,我们得到了Grafana登录页面,只启用了OAuth登录
现在,我们单击OAuth登录按钮
成功认证后,用户认证的会话不会被转移到Grafana,而是被重定向到登录页面。
Grafana或oauth2_proxy中均无错误
请注意,这里使用Google作为身份提供者只是为了简化(我知道我可以直接在grafana中插入它,而不需要oauth2_proxy)。我使用generic_oauth的原因是,最终,oauth2_proxy将与企业身份提供者集成。
1条答案
按热度按时间ukxgm1gy1#
您不需要任何oauth2-proxy。我猜您在某处找到了它,但这是一个针对旧Grafana版本的解决方案,几年前它还没有OIDC支持。现在,Grafana对OIDC有很好的本地支持,所以只需正确配置所有GF_AUTH_GENERIC_OAUTH_* 变量。