為ingress資源添加basic auth認證


Htpasswd

htpasswdApache的Web服務器內置的工具,用於創建和更新儲存用戶名和用戶基本認證的密碼文件

Install

yum -y install httpd-tools

Option

-c: 創建一個新的密碼文件
-b: 在命令行中一並輸入用戶名和密碼而不是根據提示輸入密碼
-D: 刪除指定的用戶
-n: 不更新密碼文件,只將加密后的用戶名密碼輸出到屏幕上
-p: 不對密碼進行加密,采用明文的方式
-m: 采用MD5算法對密碼進行加密(默認的加密方式)
-d: 采用CRYPT算法對密碼進行加密
-s: 采用SHA算法對密碼進行加密
-B: 采用bcrypt算法對密碼進行加密(非常安全)

Use

命令        指定生成密碼文件       密碼文件   用戶名
htpasswd   			-c      				auth     wanglong
htpasswd   			-c      				auth     anthony

kubernetes - 為ingress添加basic-auth認證

創建用戶密碼文件
 htpasswd -c auth anthony
 htpasswd auth wanglong
查看用戶密碼文件
cat auth 
wanglong:$apr1$.MVr5Acc$/O7o5pLEi3totJo.X4KnD/
anthony:$apr1$uKiSFrrL$i2wlD8lPl1uCl8OluG069/
創建secret資源存儲用戶密碼
example:
kubectl -n <namespace> create secret generic basic-auth --from-file=auth

kubectl -n test create secret generic basic-auth --from-file=auth
創建ingress資源
// this_is_ingress_example.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: springboot
  namespace: test
  annotations:
    nginx.ingress.kubernetes.io/auth-type: basic
    nginx.ingress.kubernetes.io/auth-secret: basic-auth
spec:
  rules:
    - host: test.jd.cn
      http:
        paths:
          - path: /
            backend:
              serviceName: springboot-svc
							servicePort: 9090

終端驗證
curl -I http://test.jd.cn
HTTP/1.1 401 Unauthorized
Server: nginx/1.16.1
Date: Thu, 12 Mar 2020 12:16:35 GMT
Content-Type: text/plain
Content-Length: 17
Connection: keep-alive
Www-Authenticate: Basic realm="traefik"


curl -I http://test.jd.cn -u "wanglong:123456"
HTTP/1.1 200 OK
Server: nginx/1.16.1
Date: Thu, 12 Mar 2020 12:22:12 GMT
Content-Type: text/html
Content-Length: 22031
Connection: keep-alive
Accept-Ranges: bytes
Etag: "5b4e2a7c-560f"
Last-Modified: Tue, 17 Jul 2018 17:42:20 GMT


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM