前言

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

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

系列文章:

今天我们基于 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-auth
namespace: kube-system
spec:
basicAuth:
secret: authsecret ---
# Note: 在kubernetes的secret中,字符串(例如由htpasswd生成的)必须首先进行base64编码。
# 要创建一个encoded 的 user:password 对,可以使用以下命令:
# htpasswd -nb user password | openssl base64 apiVersion: v1
kind: Secret
metadata:
name: authsecret
namespace: kube-system
data:
users: |2
dGVzdDokYXByMSRINnVza2trVyRJZ1hMUDZld1RyU3VCa1RycUU4d2ovCnRlc3QyOiRhcHIxJGQ5
aHI5SEJCJDRIeHdnVWlyM0hQNEVzZ2dQL1FObzAK

创建基于 BasicAuth MiddleWare 的 IngressRoute

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

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: alertmanager
namespace: cert-manager
spec:
entryPoints:
- web
- websecure
routes:
- kind: Rule
match: Host(`alertmanager.ewhisper.cn`)
middlewares:
- name: hsts-header
namespace: kube-system
- name: redirectshttps
namespace: kube-system
- name: basic-auth
namespace: kube-system
services:
- name: kube-prometheus-alertmanager
namespace: monitoring
port: 9093
tls: {}

验证

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

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

️参考文档

BasicAuth - Traefik

EOF

三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.

基于 Traefik 的 Basic Auth 配置的更多相关文章

  1. 使用crypt配置Basic Auth登录认证

    简介 Basic Auth用于服务端简单的登录认证,通常使用服务器Nginx.Apache本身即可完成.比如我们要限定某个域名或者页面必须输入用户名.密码才能登录,但又不想使用后端开发语言,此时Bas ...

  2. Etcd安全配置之Basic Auth认证

    <中小团队落地配置中心详解>文章中我们介绍了如何基于Etcd+Confd构建配置中心,最后提到Etcd的安全问题时说了可以使用账号密码认证以达到安全访问的目的,究竟该如何开启认证以及怎么设 ...

  3. Nginx下配置Http Basic Auth

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

  4. Jmeter实现Basic Auth方式登录

    背景 在实际测试日常中,产品有两种登录方式,一种是普通登录方式,另一种则是Basic Auth方式登录.两种登录对应着产品中不同的操作,对权限进行了一个划分. Postman登录 使用Postman登 ...

  5. 通过tarball形式安装HBASE Cluster(CDH5.0.2)——Hadoop NameNode HA 切换引起的Hbase错误,以及Hbase如何基于NameNode的HA进行配置

    通过tarball形式安装HBASE Cluster(CDH5.0.2)——Hadoop NameNode HA 切换引起的Hbase错误,以及Hbase如何基于NameNode的HA进行配置 配置H ...

  6. springboot成神之——Basic Auth应用

    本文介绍Basic Auth在spring中的应用 目录结构 依赖 入口DemoApplication 验证Authenication 配置WebSecurityConfig 控制器TestContr ...

  7. (74)zabbix第三方认证之http(nginx basic auth)

    HTTP Basic Auth认证方式,我们将在实例中使用nginx来演示,Apache也类似. zabbix认证配置 Administration>> Authentication,将h ...

  8. SpringBoot + CXF快速实现SOAP WebService(支持Basic Auth)

    唠叨两句 讲真,SOAP跟现在流行的RESTful WebService比起来显得很难用.冗余的XML文本信息太多,可读性差,它的请求信息有时很难手动构造,不太好调试.不过说归说,对某些企业用户来说S ...

  9. ios开发使用Basic Auth 认证方式

    http://blog.csdn.net/joonchen111/article/details/48447813 我们app的开发通常有2种认证方式   一种是Basic Auth,一种是OAuth ...

  10. Basic Auth攻击

    1.Basic Auth认证简介 Basic身份认证,是HTTP 1.0中引入的认证方案之一.虽然方案比较古老,同时存在安全缺陷,但由于实现简单,至今仍有不少网站在使用它. 例如Apche Tomca ...

随机推荐

  1. HDU2844 Coins(多重背包)

    多重背包就是每种物品有数量限制时求解最大价值. 如果一种物品数量和重量之积超过背包容量,可视为完全背包:其余情况通过二进制拆分,将几个数量的物品看成一个,转化为01背包求解. 按照这种思路代码是这样的 ...

  2. EFCore (三)悲观锁 和 乐观锁

    原理 UPDATE [Person] SET [FirstName] = @p1 WHERE [PersonId] = @p0 AND [LastName] = @p2; 在 SaveChanges ...

  3. 非swoole的方式实现简单的异步(nginx模式下)

    set_time_limit(0);echo '任务开始'.time();/*即时打印*/register_shutdown_function([$this, "test"]);/ ...

  4. 【听如子说】-python模块系列-AIS编解码Pyais

    Pyais Module Introduce pyais一个简单实用的ais编解码模块 工作中需要和ais打交道,在摸鱼的过程中发现了一个牛逼的模块,对ais编解码感兴趣的可以拿项目学习一下,或者运用 ...

  5. linux 自动备份mysql数据库

    今天一早打开服务器.13W个木马.被爆破成功2次,漏洞3个.数据库被删.这是个悲伤的经历 还好之前有备份,服务器也升级了安全机制,只是备份是上个月的备份.所以想写个脚本,试试自动备份数据库. 1. 先 ...

  6. .NET性能系列文章一:.NET7的性能改进

    这些方法在.NET7中变得更快 照片来自 CHUTTERSNAP 的 Unsplash 欢迎阅读.NET性能系列的第一章.这一系列的特点是对.NET世界中许多不同的主题进行研究.比较性能.正如标题所说 ...

  7. 7.Gitee导入其他远程托管中心仓库

    的码云是开源中国推出的基于Git的代码托管服务中心 网址是https://gitee.com/,使用方式跟github一致,并且是一个中文网站 码云的使用配置方式与github一致,码云支持导入git ...

  8. 【MySQL】Navicat15 安装

    # Navicat安装` 提示`:鉴于之间已经出了MySQL的安装教程,在这了我也讲下,那个其实包含了两个知识点,既可以小白初次安装MySQL客户端,也面向想安装5.x和8.x两个版本的. --- @ ...

  9. Web自动化---解决登录页面随机验证码问题

    一.抛出问题 在日常的测试工作中,遇到了这样一个登录页面,如下图: 像我们之前做过UI自动化的同学就知道,自动输入账号和密码,这个简单,但是怎么样来识别验证码呢?验证码的形式有多种,有纯数字的,纯字母 ...

  10. LVS之NAT、DR、TUNNEL实验

    1.LVS-NAT规则+WRR算法 服务器 IP地址 作用 系统版本 RS1 10.0.0.8/24GW:10.0.0.101 网站服务器 Rocky8.6 RS2 10.0.0.18/24GW:10 ...