Traefik Forward Auth 使用教程
项目介绍
Traefik Forward Auth 是一个轻量级的转发认证服务,提供基于 Google/OpenID OAuth 的登录和认证功能,主要用于 Traefik 反向代理。该项目旨在简化在 Traefik 中集成第三方认证服务的流程,使得用户可以通过 Google 等平台进行身份验证,从而增强应用的安全性。
项目快速启动
环境准备
- Docker 环境
- Traefik 已安装并运行
- Google OAuth 客户端 ID 和密钥
快速启动步骤
-
克隆项目仓库
git clone https://github.com/thomseddon/traefik-forward-auth.git cd traefik-forward-auth
-
创建
docker-compose.yml
文件version: '3' services: traefik: image: traefik:v2.2 command: --providers.docker ports: - "8085:80" volumes: - /var/run/docker.sock:/var/run/docker.sock traefik-forward-auth: image: thomseddon/traefik-forward-auth:2 environment: - PROVIDERS_GOOGLE_CLIENT_ID=your-client-id - PROVIDERS_GOOGLE_CLIENT_SECRET=your-client-secret - SECRET=something-random - INSECURE_COOKIE=true # 示例假设没有 HTTPS,不要在生产环境中使用 labels: - "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" whoami: image: containous/whoami labels: - "traefik.http.routers.whoami.rule=Host(`whoami.mycompany.com`)" - "traefik.http.routers.whoami.middlewares=traefik-forward-auth"
-
启动服务
docker-compose up -d
应用案例和最佳实践
应用案例
- 企业内部应用:在企业内部应用中,使用 Traefik Forward Auth 可以方便地集成 Google 认证,确保只有授权用户可以访问内部资源。
- 多租户平台:在多租户平台中,可以通过配置不同的 OAuth 客户端 ID 和密钥,为每个租户提供独立的认证服务。
最佳实践
- 安全配置:确保在生产环境中使用 HTTPS,并禁用
INSECURE_COOKIE
选项。 - 规则配置:利用规则配置,可以灵活地选择哪些路径或主机需要进行认证,哪些不需要。
- 监控和日志:配置适当的监控和日志记录,以便及时发现和解决认证问题。
典型生态项目
- Traefik:作为反向代理和负载均衡器,与 Traefik Forward Auth 配合使用,提供完整的认证和代理解决方案。
- OAuth2 Proxy:另一个流行的 OAuth2 代理服务,可以与 Traefik 结合使用,提供更多的认证选项和灵活性。
- Keycloak:一个开源的身份和访问管理解决方案,可以作为更复杂的认证和授权系统的后端。
通过以上步骤和配置,您可以快速启动并使用 Traefik Forward Auth 项目,为您的应用提供安全的认证服务。