You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
docs/docs/docker/traefik-forward-auth.md

4.7 KiB

github.com

  • Бесшовно накладывает любой http-сервис на одну конечную точку (см.: url-pathв разделе «Конфигурация ») .
  • Поддерживает несколько поставщиков, включая Google и OpenID Connect (поддерживается Azure, Github, Salesforce и т. д.).
  • Поддерживает несколько доменов/поддоменов, динамически генерируя redirect_uri
  • Позволяет выборочно применять/обходить аутентификацию на основе параметров запроса (см rules. Конфигурация )
  • Поддерживает использование централизованной аутентификации host/redirect_uri (см auth-host. Конфигурация )
  • Позволяет сохранять аутентификацию в нескольких доменах (см. Домены cookie )
  • Поддерживает расширенную аутентификацию за пределами срока действия токена Google (см.: lifetimeв разделе «Конфигурация »).

Применение

docker-compose

version: "3.9"

# docker network create --gateway 172.18.0.254 --subnet 172.18.0.0/24 traefik_net
networks:
  traefik_net:
    external: true

services:
  traefik-forward-auth:
    image: thomseddon/traefik-forward-auth
    container_name: traefik-forward-auth
    restart: always
    networks:
      traefik_net:
        ipv4_address: 172.18.1.4
    environment:
      - DEFAULT_PROVIDER=oidc
      # Keycloak Section
      #- PROVIDERS_OIDC_ISSUER_URL=https://auth.example.ru/auth/realms/traefik #for keycloak
      #- PROVIDERS_OIDC_CLIENT_ID=$PROVIDERS_OIDC_CLIENT_ID
      #- PROVIDERS_OIDC_CLIENT_SECRET=$PROVIDERS_OIDC_CLIENT_SECRET
      # Google OAuth
      - PROVIDERS_GOOGLE_CLIENT_ID=your-client-id
      - PROVIDERS_GOOGLE_CLIENT_SECRET=your-client-secret
      - SECRET=secret #replace
      - LOG_LEVEL=warn
    labels:
      - "traefik.enable=true"
      - "traefik.http.middlewares.traefik-forward-auth.forwardauth.address=http://traefik-forward-auth:4181"
      - "traefik.http.middlewares.traefik-forward-auth.forwardauth.authResponseHeaders=X-Forwarded-User"
      - "traefik.http.services.traefik-forward-auth.loadbalancer.server.port=4181"

Более полный файл docker-compose.yml или kubernetes/simple-separate-pod можно найти в каталоге примеров

Google провайдер

Настройка провайдера на примере Google. Другие провайдеры можно посмотреть на Github автора.

Перейдите на https://console.developers.google.com и убедитесь, что вы переключились на правильную учетную запись электронной почты.

Создайте новый проект, затем найдите и выберите «Учетные данные» в строке поиска. Заполните вкладку «Экран согласия OAuth».

Нажмите «Создать учетные данные» > «Идентификатор клиента OAuth». Выберите «Веб-приложение», введите имя своего приложения, пропустите «Авторизованные источники JavaScript» и заполните «Авторизованные URI перенаправления» со всеми доменами, с которых вы разрешите аутентификацию, добавив (например, https: url-path//app.test . com/_oauth )

Вы должны установить параметры конфигурации providers.google.client-idи providers.google.client-secret

Авторские права

2018 Том Седдон