使用Traefik将基本身份验证应用于除一个容器之外的所有容器

时间:2017-10-24 17:10:29

标签: docker-swarm traefik

除少数几个容器外,所有容器都需要基本身份验证的最佳方法是什么?

类似于仍在等待答案的this question

3 个答案:

答案 0 :(得分:1)

你不能这样做,你需要在每个前端添加基本身份验证。

https://docs.traefik.io/configuration/backends/docker/#on-containers

答案 1 :(得分:0)

您可以使用traefik标签将auth仅添加到某些容器中。例如:

两个容器堆叠在一起,其中一个具有以下标签: "traefik.frontend.auth.basic=user:$$apr1$$9Cv/OMGj$$ZomWQzuQbL.3TRCS81A1g/"

另一个没有。访问第一个容器将需要对用户user进行身份验证。另一个将打开。

参考:https://docs.traefik.io/configuration/backends/docker/#on-containers

答案 2 :(得分:0)

通过标签将基本的身份验证标签添加到您的traefik容器中

labels:
  # Basic Auth middleware
  - traefik.http.middlewares.YOUR_AUTH_MIDDLEWARE_NAME.basicauth.users=${TRAEFIK_BASICAUTH_USERS}

然后,可以在其他容器中通过标签添加相同的中间件:

labels:
  - traefik.enable=true
  - traefik.port=80
  - traefik.http.routers.YOUR_ROUTER_NAME.rule=Host(`subdomain.domain.com`)
  - traefik.http.routers.YOUR_ROUTER_NAME.entryPoints=websecure
  - traefik.http.routers.YOUR_ROUTER_NAME.middlewares=YOUR_AUTH_MIDDLEWARE_NAME # <- this enables basic auth, using the same users

对于不应该具有基本身份验证的容器,只需删除最后一个标签