Ingress配置认证登录

Nginx认证登录参考
https://www.cnblogs.com/minseo/p/9234003.html

使用Ingress代理的站点怎么设置认证

  1. 使用密码工具生成密码文件
# htpasswd -c  kibana.passwd admin

以上命令意思是给用户名为admin设置一个密码,在提示框连续输入两次需要设置的密码即可
image
会在当前目录生成文件auth字符串为加密后

# cat auth
admin:$apr1$eUtjJLBJ$AzkPhTx.GYwiT0q7phKhd1

如果没有htpasswd命令则使用以下命令安装
CentOS系统

# yum install httpd-tools

Ubuntu系统

#  apt install apache2-utils
  1. 导入secret
    创建secert名称为basic-auth 该密钥是从文件auth创建的
# kubectl create secret generic basic-auth --from-file=auth 
  1. 修改ingress配置文件
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  generation: 1
  name: kibana-ingress
  annotations:
    nginx.ingress.kubernetes.io/proxy-body-size: 4096m
    nginx.ingress.kubernetes.io/auth-type: basic
    # 使用刚才创建的secret名称 
    nginx.ingress.kubernetes.io/auth-secret: basic-auth
    # "Authentication Required - admin"这个只是账号密码输错时的一个提示
    nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - admin'
spec:
  rules:
  - host: kibana.test.com
    http:
      paths:
      - backend:
          serviceName: kibana-outside-svc
          servicePort: 80
        path: /
  tls:
  - hosts:
    - kibana.test.com
    secretName: test.com

添加以下几行配置

# 认证模式basic
nginx.ingress.kubernetes.io/auth-type: basic
# 使用刚才创建的secret名称 
nginx.ingress.kubernetes.io/auth-secret: basic-auth
# "Authentication Required - admin"这个只是账号密码输错时的一个提示
nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - admin'

访问提示需要用户名和密码
image

posted @ 2024-07-11 14:16  minseo  阅读(2)  评论(0编辑  收藏  举报