From 2e7e622f1eae46d8f2156487a8e8b37ea45f8aa2 Mon Sep 17 00:00:00 2001 From: thest1tch Date: Thu, 8 Jun 2023 22:58:53 +0500 Subject: [PATCH] add traefik-forward-auth --- docs/docker-compose/traefik-forward-auth.md | 65 +++++++++++++++++++++ mkdocs.yml | 2 + 2 files changed, 67 insertions(+) create mode 100644 docs/docker-compose/traefik-forward-auth.md diff --git a/docs/docker-compose/traefik-forward-auth.md b/docs/docker-compose/traefik-forward-auth.md new file mode 100644 index 0000000..8a8071c --- /dev/null +++ b/docs/docker-compose/traefik-forward-auth.md @@ -0,0 +1,65 @@ +[github.com](https://github.com/thomseddon/traefik-forward-auth) + +- Бесшовно накладывает любой http-сервис на одну конечную точку (см.: `url-path`в [разделе «Конфигурация](https://github.com/thomseddon/traefik-forward-auth#configuration) ») . +- Поддерживает несколько поставщиков, включая Google и OpenID Connect (поддерживается Azure, Github, Salesforce и т. д.). +- Поддерживает несколько доменов/поддоменов, динамически генерируя redirect\_uri +- Позволяет выборочно применять/обходить аутентификацию на основе параметров запроса (см `rules`. [Конфигурация](https://github.com/thomseddon/traefik-forward-auth#configuration) ) +- Поддерживает использование централизованной аутентификации host/redirect\_uri (см `auth-host`. [Конфигурация](https://github.com/thomseddon/traefik-forward-auth#configuration) ) +- Позволяет сохранять аутентификацию в нескольких доменах (см. [Домены cookie](https://github.com/thomseddon/traefik-forward-auth#cookie-domains) ) +- Поддерживает расширенную аутентификацию за пределами срока действия токена Google (см.: `lifetime`в разделе [«Конфигурация](https://github.com/thomseddon/traefik-forward-auth#configuration) »). + +## Применение + +docker-compose + +```yaml +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](https://github.com/thomseddon/traefik-forward-auth/blob/master/examples/traefik-v2/swarm/docker-compose.yml) или [kubernetes/simple-separate-pod](https://github.com/thomseddon/traefik-forward-auth/blob/master/examples/traefik-v2/kubernetes/simple-separate-pod/) можно найти в каталоге примеров + +## Google провайдер + +Настройка провайдера на примере Google. [Другие провайдеры](https://github.com/thomseddon/traefik-forward-auth/wiki/Provider-Setup) можно посмотреть на Github автора. + +Перейдите на [https://console.developers.google.com](https://console.developers.google.com/) и убедитесь, что вы переключились на правильную учетную запись электронной почты. + +Создайте новый проект, затем найдите и выберите «Учетные данные» в строке поиска. Заполните вкладку «Экран согласия OAuth». + +Нажмите «Создать учетные данные» > «Идентификатор клиента OAuth». Выберите «Веб-приложение», введите имя своего приложения, пропустите «Авторизованные источники JavaScript» и заполните «Авторизованные URI перенаправления» со всеми доменами, с которых вы разрешите аутентификацию, добавив (например, https: `url-path`//app.test [. com/\_oauth](https://app.test.com/_oauth) ) + +Вы должны установить параметры конфигурации `providers.google.client-id`и `providers.google.client-secret` + +## Авторские права + +2018 Том Седдон \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index c010b64..2a97329 100755 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -60,6 +60,8 @@ nav: - Install Docker Compose: docker-compose.md - Linx Server: docker-compose/linx-server.md - Plex Meta Manager: docker-compose/plex-mm.md + - Traefik: + - Traefik Forward Auth: docker-compose/traefik-forward-auth.md #- Hardware: - Other: - SSL для сайта: other/ssl-for-site.md