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

65 lines
4.7 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

[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 Том Седдон