Traefik 2.0 - прямая аутентификация и аутентификация Basi c для одного сервиса в зависимости от PathPrefix - PullRequest
0 голосов
/ 20 января 2020

Вчера я перевел свой Traefik с 1.7 на 2.1, у меня есть прямая аутентификация (oauth), работающая для всех моих docker сервисов. Я не могу заставить два маршрутизатора работать для одной и той же службы.

Давайте возьмем Таутулли в качестве примера. Веб-интерфейс теперь правильно защищен, используя oauth. Однако для того, чтобы приложение Tautulli remote iOS работало, необходимо указать / api PathPrefix, используя вместо этого более простой базовый c auth.

Ниже я определяю два маршрутизатора с различным приоритетом и различным промежуточным программным обеспечением. Но https://tautulli.[DOMAINNAME]/api/v2?apikey?xxxx всегда перенаправляет меня на oauth-логин; tautulli-api-rtr маршрутизатор, похоже, не сработал.

      tautulli:
        image: linuxserver/tautulli
        container_name: tautulli
        hostname: tautulli
        restart: unless-stopped
        networks:
          - t2_proxy
        volumes:
          - ${USERDIR}/docker/tautulli/config:/config
          - ${USERDIR}/docker/tautulli/logs:/logs:ro
        environment:
          PUID: ${PUID}
          PGID: ${PGID}
          TZ: ${TZ}
        labels:
          - "traefik.enable=true"   
       ## DEFAULT ROUTER      
          ## HTTP Routers
          - "traefik.http.routers.tautulli-rtr.entrypoints=https"
          - "traefik.http.routers.tautulli-rtr.priority=1" 
          - "traefik.http.routers.tautulli-rtr.rule=Host(`tautulli.$DOMAINNAME`)" 
          - "traefik.http.routers.tautulli-rtr.tls=true"
          - "traefik.http.routers.tautulli-rtr.tls.certresolver=dns-cloudflare"
          ## Middlewares
          - "traefik.http.routers.tautulli-rtr.middlewares=secure-chain@file" 
          ## HTTP Services
          - "traefik.http.routers.tautulli-rtr.service=tautulli-svc"
          - "traefik.http.services.tautulli-svc.loadbalancer.server.port=8181" 
    ## API ROUTER - not working, secure-chain@file middlewares still applied...
          ## HTTP Routers
          - "traefik.http.routers.tautulli-api-rtr.entrypoints=https"
          - "traefik.http.routers.tautulli-api-rtr.priority=99"
          - "traefik.http.routers.tautulli-api-rtr.rule=Host(`tautulli.$DOMAINNAME`) && PathPrefix(`/api`)" 
          - "traefik.http.routers.tautulli-api-rtr.tls=true"
          - "traefik.http.routers.tautulli-api-rtr.tls.certresolver=dns-cloudflare"
          ## Middlewares
          - "traefik.http.routers.tautulli-api-rtr.middlewares=noauth-chain@file" 
          ## HTTP Services
      - "traefik.http.routers.tautulli-api-rtr.service=tautulli-svc"  

Промежуточное программное обеспечение определено в этом превосходном github:

https://github.com/htpcBeginner/docker-traefik/tree/master/traefik2/rules!

Благодарим за любую помощь или альтернативное решение!

1 Ответ

1 голос
/ 20 января 2020

Это на самом деле работает как задумано. Я думаю, что вызвал API неправильный docker при отладке :) Это было поздно ночью

...