【问题标题】:traefik and basic authtraefik 和基本身份验证
【发布时间】:2019-11-22 07:38:54
【问题描述】:

我使用 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}

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

你看:我没有在 .env 文件中转义 $ 符号。 当我在运行时检查容器时,我看到的加密密码与我的 .env 文件中的密码完全相同!

docker inspect 47aa3dbc3623 | grep test

给我:

"traefik.frontend.auth.basic.users": "test:$apr1$f0uSe/rs$KGSQaPMD.352XdXIzsfyY0",

我还尝试将用户/密码字符串直接放入 docker-compose.yml。这次通过转义 $ 符号。 检查命令也成功了。 但是:当我调用我的 grafana-URL 时,我得到一个基本的身份验证对话框,当我输入我的用户/密码组合时,我总是得到一个

{"message":"Invalid username or password"}

这里还有什么问题?我目前不知道。

【问题讨论】:

    标签: docker-compose basic-authentication traefik


    【解决方案1】:

    这个消息实际上意味着你通过了 traefik 的基本认证。因为如果您输入无效凭据,基本身份验证窗口会再次弹出。

    Grafana 自己使用基本身份验证,但这个失败了。

    不要在生产环境中这样做:为了证明这一点,您可以将 grafana 配置为要求相同的用户和密码。然后它将接受转发的 traefik 基本身份验证并允许访问。

    但是,您应该使用 traefik 设置基本身份验证或使用 grafana 基本身份验证。

    您可能还想查看有关在反向代理后面运行 grafana 的信息:https://grafana.com/tutorials/run-grafana-behind-a-proxy/#1 尤其是https://grafana.com/docs/grafana/latest/auth/auth-proxy/

    除了转发 auth 标头之外的另一个选项是禁用转发它:

    labels:
    ...
    - "traefik.http.middlewares.authGrafana.basicauth.removeheader=true"
    

    现在您应该会看到 grafana 登录页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-12
      • 1970-01-01
      • 2011-01-28
      • 1970-01-01
      • 1970-01-01
      • 2021-07-29
      • 2021-01-28
      相关资源
      最近更新 更多