Tho*_*hen 5 basic-authentication docker-compose traefik
我使用 traefik 1.7.14,我想为我的 grafana-docker-compose 服务使用基本身份验证。我关注了例如https://medium.com/@xavier.priour/secure-traefik-dashboard-with-https-and-password-in-docker-5b657e2aa15f
但我也查看了其他来源。在我docker-compose.yml
的 Grafana 中:
grafana:
image: grafana/grafana
labels:
- "traefik.enable=true"
- "traefik.backend=grafana"
- "traefik.port=3000"
- "traefik.frontend.rule=Host:grafana.my-domain.io"
- "traefik.frontend.entryPoints=http,https"
- "traefik.frontend.auth.basic.users=${ADMIN_CREDS}
Run Code Online (Sandbox Code Playgroud)
ADMIN_CREDS 在我的.env
文件中。我创建的内容与htpasswd -nbm my_user my_password
我也试过htpasswd -nbB my_user my_password
不md5
但是bcrypt
加密。在.env
ADMIN_CREDS=test:$apr1$f0uSe/rs$KGSQaPMD.352XdXIzsfyY0
Run Code Online (Sandbox Code Playgroud)
你看:我没有在.env
文件中转义 $ 符号。当我在运行时检查我的容器时,我看到与我的.env
文件中完全相同的加密密码!
docker inspect 47aa3dbc3623 | grep test
给我:
"traefik.frontend.auth.basic.users": "test:$apr1$f0uSe/rs$KGSQaPMD.352XdXIzsfyY0",
Run Code Online (Sandbox Code Playgroud)
我还尝试将用户/密码字符串直接放入 docker-compose.yml。这次通过转义 $ 符号。检查命令也成功了。但是:当我调用我的 grafana-URL 时,我得到一个基本的身份验证对话框,当我输入我的用户/密码组合时,我总是得到一个
{"message":"Invalid username or password"}
Run Code Online (Sandbox Code Playgroud)
这里还有什么问题?我目前不知道。
该消息实际上意味着您通过了 traefik 的基本身份验证。因为如果您输入无效凭据,基本身份验证窗口将再次弹出。
Grafana 本身使用基本身份验证,而这个失败了。
不要在生产中这样做:为了证明这一点,您可以配置 grafana 来要求相同的用户和密码。然后它将接受转发的 traefik 基本身份验证并允许访问。
但是,您应该使用 traefik 设置基本身份验证或使用 grafana 基本身份验证。
您可能还想检查有关在反向代理后面运行 grafana 的信息: https: //grafana.com/tutorials/run-grafana-behind-a-proxy/#1 和特别是https://grafana.com/docs/ grafana/最新/auth/auth-proxy/
除了转发身份验证标头之外,另一个选择是禁用转发:
labels:
...
- "traefik.http.middlewares.authGrafana.basicauth.removeheader=true"
Run Code Online (Sandbox Code Playgroud)
现在您应该看到 grafana 登录页面。
归档时间: |
|
查看次数: |
1671 次 |
最近记录: |