Lazy loaded image
traefik basic auth 认证处理
Words 461Read Time 2 min
2025-10-23
2026-1-3
date
related_level
slug
traefik_basic_auth
type
Post
relate_date
summary
通过 Traefik 的 basicAuth 中间件配置 HTTP 基本身份认证
status
Published
tags
k8s
前端
安全
category
互联网
last_updated
Jan 3, 2026 08:53 PM
是否已更新
orginal_page
是否推荐
  • 通过 basicAuth 中间件添加 header 并传给后端
    • 以 k8s traefik 为例
  • kubectl create ns external-svc
    • 后续将在 external-svc 创建对应资源
  • mkdir -p ~/.config/k3s/kube-system/traefik/external-svc/haproxy
  • cd ~/.config/k3s/kube-system/traefik/external-svc/haproxy
kustomize 创建 haproxy admin 端口路由以及对应认证中间件
假设用户名为 admin 和 metrics,创建 .htpasswd 文件
  • 需要使用 htpasswd 用户认证
    • which htpasswd || sudo apt install -y apache2-utils
  • echo -n "admin passwd: " && read -s HTPW_ADMIN; echo
  • echo -n "metrics passwd: " && read -s HTPW_METRICS; echo
  • printf "%s\n%s\n" \ "$(htpasswd -bBn admin "$HTPW_ADMIN")" \ "$(htpasswd -bBn metrics "$HTPW_METRICS")" \ > .htpasswd
vim haproxy-eps.yaml
  • 外部 haproxy,需要直接创建 EndpointSlice 指定 endpoints
  • 自行修改地址
vim haproxy-svc.yaml
vim haproxy-middle-auth.yaml
  • 后续创建 haproxy-htpasswd 传递凭据给 haproxy 认证
vim haproxy-ingressroute.yaml
  • 假设 haproxy 在路径 /admin 上暴露管理页面
  • 除了认证中间件还添加了 oauth 认证,详见其他文章
vim kustomization.yaml
  • 通过 secretGenerator 创建 Secret haproxy-htpasswd
  • kubectl apply -k ~/.config/k3s/kube-system/traefik/external-svc/haproxy
  • kubectl get secret -n external-svc haproxy-htpasswd -o jsonpath='{.data.users}' | base64 --decode
    • 查看解码后的情况
  • unset HTPW_ADMIN && unset HTPW_METRICS
  • kubectl get IngressRoute -n monitor haproxy-ingressroute -o yaml
  • kubectl logs --since 15m -n kube-system deploy/traefik
    • 检查 traefik 日志
  • curl -vk -u "admin:passwd" https://haproxy.cluster.local/admin
    • curl 直接测试
    • 假设已添加 DNS 记录,且对应命名空间已配置 traefik crd
上一篇
k8s 配置高可用 oauth2-proxy 为页面提供身份验证
下一篇
OpenstackClient 使用指南

Comments
Loading...