首页 > 其他分享 >基于 Traefik 的 Basic Auth 配置

基于 Traefik 的 Basic Auth 配置

时间:2022-12-22 10:25:17浏览次数:149  
标签:name Traefik namespace system Auth BasicAuth Basic kube

前言

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

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

系列文章:

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

Basic Auth 功能简图

使用 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: {}

验证

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

Basic Auth 页面

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

标签:name,Traefik,namespace,system,Auth,BasicAuth,Basic,kube
From: https://www.cnblogs.com/east4ming/p/16997766.html

相关文章

  • asp.netcore Authentication
    Authenticationisforgettingtheuserinfomationfromcookie/token..Weuse Authenticationlikethis:builder.Services.AddAuthentication("cookie").AddCooki......
  • OAuth2基础(一)
    简介OAuth2的设计背景,在于允许用户在不告知第三方自己的帐号密码情况下,通过授权方式,让第三方服务可以获取自己的资源信息。详细的协议介绍,开发者可以参考RFC6749。下面......
  • swagger-ui-express 配置 Authorize
    swagger-ui-express配置Authorize在路径中这样配"security":[{"Bearer":[]}]在securitySchemes中这样配"securitySchemes":{......
  • How to use JDBC-Authentication of Spring Boot/Spring Security with Flyway
     java.lang.IllegalStateException:FailedtoloadApplicationContextatorg.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadCon......
  • JAG Spring Contest 2012 G PLAY in BASIC 题解
    提交链接其实就是个大模拟。首先对输入的串进行处理,把所有的命令分开,并把连续的停顿合并。为了方便,定义一个时间单位为全音符的\(\frac1{128}\),这样所有命令的持续时间都......
  • JAG Spring Contest 2012 G PLAY in BASIC 题解
    提交链接其实就是个大模拟。首先对输入的串进行处理,把所有的命令分开,并把连续的停顿合并。为了方便,定义一个时间单位为全音符的\(\frac1{128}\),这样所有命令的持续时间都......
  • OAuth 2 Developers Guide
    IntroductionThisistheuserguideforthesupportfor ​​OAuth2.0​​​.ForOAuth1.0,everythingisdifferent,so ​​seeitsuserguide​​.Thisusergu......
  • ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. For det
    出现这个错误表示rabbiMQ拒绝使用普通身份验证机制拒绝登录,解决的方法很简单解决办法在rabbitMq的后台创建一个不普通的用户就好了,具体步骤如下:进入admin界面,添加一个......
  • authorizationPolicy详解
     欢迎关注我的公众号: 目前刚开始写一个月,一共写了18篇原创文章,文章目录如下:​​istio多集群探秘,部署了50次多集群后我得出的结论​​​​istio多集群链路追踪,附实操视频​......
  • PeerAuthentication详解
     欢迎关注我的公众号: 目前刚开始写一个月,一共写了18篇原创文章,文章目录如下:​​istio多集群探秘,部署了50次多集群后我得出的结论​​​​istio多集群链路追踪,附实操视频​......