Nginx 的身份验证方式

问题描述 投票:0回答:1

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

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

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

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

非常感谢您的帮助,谢谢大家!

authentication nginx certificate
1个回答
12
投票
  1. 旧的良好基本身份验证仍然存在,其中包括

    ngx_http_auth_basic_module
    。不幸的是,nginx 本身实现的唯一算法是旧且弱的 apache MD5,但是使用基于
    glibc
    的主机系统,您还有其他一些选择。您可以在这里了解更多详情。

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

  3. 您可以使用

    njs 模块中的

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

  4. 您可以使用著名的

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

    • NGINX Lua OAuth 代理插件
    • Nginx Lua脚本redis用于基本用户认证
  5. 虽然这个只与 Nginx Plus 相关,但为了使答案完整,我必须提到

    ngx_http_auth_jwt_module

     以及 F5 的几篇官方文章:
    

    • 设置 JWT 身份验证
    • 使用 JWT 和 NGINX Plus 验证 API 客户端
© www.soinside.com 2019 - 2024. All rights reserved.