前言

Traefik是一个现代的HTTP反向代理和负载均衡器,使部署微服务变得容易。

Traefik可以与现有的多种基础设施组件(Docker、Swarm模式、Kubernetes、Marathon、Consul、Etcd、Rancher、Amazon ECS...)集成,并自动和动态地配置自己。

系列文章:

  • 《基于 Traefik 的激进 TLS 安全配置实践》

今天我们基于 Traefik on K8S 来详细说明如何通过 BasicAuth MiddleWare 实现认证功能

使用 Basic Auth 的原因很简单, 比如我们想要将一个无认证的页面放到公网, 但是出于安全考虑又希望只有账号密码的用户才能访问. 比如: 放开 Prometheus UI/AlertManager UI 到公网就可以加上 Basic Auth.

创建 BasicAuth MiddleWare

创建 yaml 文件: (如注释中所述, users base64 串可以直接通过 htpasswd 生成)

# 声明 `users` 所在的secret
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:name: basic-authnamespace: kube-system
spec:basicAuth:secret: authsecret---
# Note: 在kubernetes的secret中,字符串(例如由htpasswd生成的)必须首先进行base64编码。
# 要创建一个encoded 的 user:password 对,可以使用以下命令:
# htpasswd -nb user password | openssl base64apiVersion: v1
kind: Secret
metadata:name: authsecretnamespace: kube-system
data:users: |2dGVzdDokYXByMSRINnVza2trVyRJZ1hMUDZld1RyU3VCa1RycUU4d2ovCnRlc3QyOiRhcHIxJGQ5aHI5SEJCJDRIeHdnVWlyM0hQNEVzZ2dQL1FObzAK

创建基于 BasicAuth MiddleWare 的 IngressRoute

如下所示, 在 middlewares 中引用了 basic-auth:

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:name: alertmanagernamespace: cert-manager
spec:entryPoints:- web- websecureroutes:- kind: Rulematch: Host(`alertmanager.ewhisper.cn`)middlewares:- name: hsts-headernamespace: kube-system- name: redirectshttpsnamespace: kube-system- name: basic-authnamespace: kube-systemservices:- name: kube-prometheus-alertmanagernamespace: monitoringport: 9093tls: {}

验证

访问对应页面后会弹出登录对话框, 如下:

正确输入账号密码才能访问

基于 Traefik 的 Basic Auth 配置相关推荐

  1. nginx basic auth配置踩坑记

    nginx的basic auth配置由ngx_http_auth_basic_module模块提供,对HTTP Basic Authentication协议进行了支持,用户可通过该配置设置用户名和密码 ...

  2. 配置kubernetes服务basic auth

    由于一些内部服务访问并不需要鉴权,如kubernetes-dashboard.traefik-ui,所以当我们想通过外网域名访问的时候会有安全问题.这里我们可以为服务配置basic auth,访问时需 ...

  3. Nginx配置Basic Auth登录认证的实现方法

    这篇文章主要介绍了Nginx配置Basic Auth登录认证的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 有时候我们通过nginx搭建了一台文件服务器, 一般 ...

  4. Nginx下配置Http Basic Auth

       nginx basic auth指令 第一条语句: 语法:     auth_basic string | off; 默认值:     auth_basic off; 配置段:     http ...

  5. 基于 Traefik 的 ForwardAuth 配置

    前言 Traefik 是一个现代的 HTTP 反向代理和负载均衡器,使部署微服务变得容易. Traefik 可以与现有的多种基础设施组件(Docker.Swarm 模式.Kubernetes.Mara ...

  6. 基于 Traefik 的激进 TLS 安全配置实践

    前言 Traefik是一个现代的HTTP反向代理和负载均衡器,使部署微服务变得容易. Traefik可以与现有的多种基础设施组件(Docker.Swarm模式.Kubernetes.Marathon. ...

  7. OkHttp配置Basic Auth

    需求:远程服务使用HTTPS连接,并需要Basic Auth认证 在配置类里面注入一个自定义OkHttpClient @Value("${sign.httpName}")priva ...

  8. Rest Api 项目添加 Basic Auth 认证

    title: Rest Api 项目添加 Basic Auth 认证 date: 2022-10-10 22:09 tags: [Java,Spring Boot,Rest Api,Basic Aut ...

  9. Basic Auth 和 OAuth的区别

    开放平台有两种认证方式,一种是Basic Auth,一种是OAuth. 关于OAuth1,OAuth2的异同  移步->> https://blog.csdn.net/qq_1502829 ...

最新文章

  1. 批量替换sqlserver数据库TEXT字段类型的数据
  2. Expect 在网络管理中发挥着重要作用
  3. redis cluster集群模式总结
  4. vue axios拦截器的封装
  5. JavaFX官方教程(四)之Hello World,JavaFX样式
  6. 面试之 Python 进阶
  7. webservice小坑
  8. 吉他谱——寂寞是因为思念谁
  9. 响应式布局技术:App如何适配不同尺寸的设备
  10. XElement.Load 需要释放吗_因为信用卡逾期还不上坐牢了,刑满释放后,还需要继续还钱吗?...
  11. 【随便唱唱】猫的报恩-幻化成风
  12. postman 接口测试用例设计
  13. HTML邮件样式不生效,邮件Html踩坑
  14. Rietveld, or “How to revamp your code review process”
  15. 超强学位论文检索工具,你必须拥有!
  16. nio中的Files类常用方法
  17. 重装mysql_重装MySQL步骤详解
  18. 浅议信息系统控制在企业中的应用(lunwen+开题报告)
  19. (重要)同网段和不同网段设备通信过程详解
  20. TeXworks文献引用问题

热门文章

  1. MySQL PHP操作数据库
  2. Java除法结果带小数、进一法的实现(java)
  3. 水果店圈子:水果店日常朋友圈文案,水果店发朋友圈文案
  4. 程序员成长之旅——C语言三子棋
  5. 模仿微信语音聊天功能(4) 音频播放实现以及项目结束
  6. 推荐几个方法教你学会怎样制作视频剪辑
  7. 基于 Gin 的会议室预约 API 设计 (二)
  8. Dancing Link --- 模板题 HUST 1017 - Exact cover
  9. CSS基础(7)- 盒模型
  10. 黑客暴力破解必备的12大逆向工具!设置再复杂的密码也没用!