nginx如何設(shè)置實(shí)現(xiàn)訪客用戶身份驗(yàn)證
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
NGINX 能夠?qū)蛻舳诉M(jìn)行身份驗(yàn)證。使用 NGINX 對(duì)客戶端請(qǐng)求進(jìn)行身份驗(yàn)證可以減輕服務(wù)器的工作負(fù)載,并能夠阻止未經(jīng)身份驗(yàn)證的請(qǐng)求到達(dá)應(yīng)用服務(wù)器。NGINX 開(kāi)源版模塊包括基本身份驗(yàn)證和身份驗(yàn)證子請(qǐng)求。NGINX Plus 專有的 JSON Web Tokens(JWT)驗(yàn)證模塊可與使用身份驗(yàn)證標(biāo)準(zhǔn) OpenID Connect 的第三方身份驗(yàn)證提供商集成 本例子演示都是NGINX開(kāi)源版 HTTP 基本身份驗(yàn)證 NGINX可以理解如下的密碼格式:
使用openssl passwd 對(duì)字符串進(jìn)行加密: 1、安裝openssl后,在命令行執(zhí)行如下命令:
2、在conf.d目錄下創(chuàng)建passwd.txt,將用戶名和密碼寫(xiě)入,如圖: 注:openssl passwd生成的密碼是針對(duì)當(dāng)前用戶的,我在root下執(zhí)行,因此用戶就是root 3、編輯nginx.conf,給server模塊添加認(rèn)證,如圖:
4、通過(guò)IP訪問(wèn)NGINX,提示輸入賬號(hào)密碼,如圖: 使用htpasswd來(lái)配置用戶名和密碼: 除了openssl passwd外,還可以使用htpasswd來(lái)設(shè)置用戶名和密碼 1、安裝htpasswd,命令如下:
2、執(zhí)行htpasswd命令生成用戶名和密碼文件,testuser是用戶名,如圖: 3、將/root/passwd.txt內(nèi)容粘貼到conf.d/passwd.txt中,如圖: 4、再次登錄NGINX,提示輸入用戶名和密碼,如圖: 輸入后即可登錄到頁(yè)面 注意:auth_basic認(rèn)證可使用在http、server、location中,針對(duì)不同場(chǎng)景認(rèn)證 身份驗(yàn)證內(nèi)部子請(qǐng)求 通過(guò)第三方身份驗(yàn)證來(lái)對(duì)請(qǐng)求進(jìn)行身份驗(yàn)證,需要用到的模塊為http_auth_request_module,此模塊默認(rèn)不帶,需要在編譯安裝的時(shí)候通過(guò)如下方式指定:
1、在conf.d下定義auth.conf文件,內(nèi)容如下:
原理:首先請(qǐng)求進(jìn)來(lái)后,先到達(dá)子請(qǐng)求/authservice,子請(qǐng)求的認(rèn)證服務(wù)為http://192.168.49.83:8989/auth,如果子請(qǐng)求返回的狀態(tài)碼為2xx,表示請(qǐng)求成功,然后繼續(xù)后面的root /usr/share/nginx/html,如果返回3xx或者4xx等,則表示請(qǐng)求不成功,認(rèn)證不通過(guò) 2、編輯auth_8989.conf文件,定義路由返回狀態(tài)碼為200,內(nèi)容如下: 3、通過(guò)IP訪問(wèn),如圖: 4、修改第2步,將返回狀態(tài)碼修改為401,再次請(qǐng)求,如圖: 從上圖看出,當(dāng)子請(qǐng)求返回狀態(tài)碼不是2xx的時(shí)候,認(rèn)證就會(huì)失敗。 閱讀原文:原文鏈接 該文章在 2025/7/1 23:18:25 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |