前言

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. 还不知道BeanFactory和ApplicationContext的区别?
  2. esp8266 wifi模组入网案例
  3. 【机器学习】6大监督学习模型:毒蘑菇分类
  4. 什么是RPC?RPC框架dubbo的核心流程
  5. matlab中antoine方程应用,Antoine方程 安托因方程
  6. element form自定义校验_SpringBoot分组校验及自定义校验注解
  7. mysql route mycat_mycat
  8. 寻找数组中 的最大值最小值
  9. 软考信息系统项目管理师_考试题型介绍_选择题75分_45分过_案例分析题_75分_45分过_计算题_论文题的架构和写法---软考高级之信息系统项目管理师002
  10. APP的UI自动化测试框架及平台化探索
  11. 自己动手写操作系统-经典书籍
  12. cass软件yy命令_南方CASS软件快捷命令大全,高手必备。。。
  13. 安装Visual Studio2019一直显示网络未连接
  14. VS2008下载地址和版本破解
  15. 零度之下代码输入不了_期末考试查分,基于青果高校教务系统的一个自动python脚本代码
  16. c++读取cfg文件
  17. 基于一维卷积神经网络的滚动轴承故障识别
  18. oracle数据库事务日志已满,SQL Server中已满事务日志原因的检测(上)
  19. 儿童滑雪单板双板等级标准
  20. 一份标准的软件测试方案模板

热门文章

  1. pyqt5窗口之间传递信号_PyQt5不同窗口之间的值传递
  2. 视频合并怎么制作?建议收藏这三款软件
  3. 国内DRGs发展之路
  4. 一键生成舞曲编排的小程序(perl)
  5. 【重要】有三AI-终极VIP会员首次发布,除课程外还享有5大权益
  6. opencv将Mat读入的图像的像素值打印在控制台上
  7. Warzone: 3 (Exogen) vulnhub walkthrough
  8. 未来网游三大主流技术
  9. 图像处理--角点检测
  10. jQuery网页版简易qq音乐