Nginx 的身份验证方式

eyl*_*evi 1 authentication certificate nginx

我是 Nginx 新手,所以如果我的问题很明显,请耐心等待。

我正在寻找对 Nginx 服务器进行用户身份验证的方法。根据我的研究,我了解到有两个主要选择:

  1. 最终用户向 Nginx 发送包含私钥(例如在标头中)的请求,Ngnix 将身份验证发送到身份验证服务器,如果用户通过身份验证,Ngnix 就会得到答案。

  2. 第二个选项是 Nginx plus(一项需要花钱的服务),Nginx 处理身份验证过程 - 如果有人知道此选项的开源版本,那将是最好的。

我真的很感谢大家的帮助,谢谢大家!

Iva*_*sky 5

  1. 旧的良好基本身份验证仍然存在,其中包括ngx_http_auth_basic_module. 不幸的是,nginx 本身实现的唯一算法是旧的且弱的 apache MD5,但是使用glibc基于主机的系统,您还有其他一些选择。您可以在此处了解更多详细信息。

  2. 您可以使用客户端证书对用户进行身份验证。网上有很多文章;这是google 的第一个搜索结果页面中的Nginx 客户端证书身份验证。

  3. 您可以使用njsjs_content模块中的指令作为身份验证位置内容处理程序(而不是将身份验证请求代理到某些后端应用程序)。或者您可以同时执行这两件事,您可能会发现使用 NGINX 和 NGINX Plus 验证 OAuth 2.0 访问令牌文章非常有趣。

  4. 您可以使用著名的lua-nginx-module实现几乎所有您能想象到的身份验证机制。一些有用的链接(同样,来自谷歌搜索结果的第一页)是

  5. 虽然这个只与 Nginx Plus 相关,但为了使答案完整,我不得不提及ngx_http_auth_jwt_moduleF5 的几篇官方文章: