美文网首页
基于 Traefik 的 Basic Auth 配置

基于 Traefik 的 Basic Auth 配置

作者: 东风微鸣 | 来源:发表于2022-12-21 10:09 被阅读0次

    前言

    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 页面

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

    📚️参考文档

    BasicAuth - Traefik

    EOF

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

    相关文章

      网友评论

          本文标题:基于 Traefik 的 Basic Auth 配置

          本文链接:https://www.haomeiwen.com/subject/kscmqdtx.html