我有一个基本的Nginx docker映像,充当反向代理,当前在我的应用程序服务器前使用基本身份验证。我正在寻找一种将其与我们的SSO解决方案集成在一起的方法,该解决方案在使用JWT的开发中使用,但是所有文档都说它需要Nginx +。那么,是否可以在开源Nginx内进行JWT验证,还是需要付费版本?
答案 0 :(得分:1)
当然,有开放源代码,您可以根据情况使用和自定义它们(example)。
恕我直言,有更好的实现,您可以将其用作应用程序前面的“身份验证代理”。我最喜欢的是keycloak-gatekeeper(您可以将其与任何OpenID IdP一起使用,不仅可以与Keycloak一起使用),它可以提供身份验证,授权,令牌加密,刷新令牌实现,占用空间小,...
答案 1 :(得分:1)
还有lua-resty-openidc
:https://github.com/zmartzone/lua-resty-openidc
lua-resty-openidc是NGINX实施OpenID的库 连接依赖方(RP)和/或OAuth 2.0资源服务器(RS) 功能。
用作OpenID Connect依赖方时,它将对用户进行身份验证 使用OpenID Connect发现和反对OpenID Connect提供程序 基本客户资料(即授权码流程)。使用时 作为OAuth 2.0资源服务器,它可以验证OAuth 2.0承载 针对授权服务器或JSON Web的访问令牌 令牌用于访问令牌,可以针对 预先配置的机密/密钥。
答案 2 :(得分:0)
鉴于您已经设置了未经身份验证的配置,因此我发现了这一点并使其起作用:https://hub.docker.com/r/tomsmithokta/nginx-oss-okta,它完全基于如上所述的lua-resty-openidc
。它已经被构建的事实对我很有帮助。
首先在Okta Web GUI中配置Okta应用,然后填写NGINX示例conf中未注释掉的适当字段。唯一的警告是取消注释redirect_uri并填写该内容,而是注释掉或删除不推荐使用的字段redirect_uri_path。配置中的所有其他内容都是您可以使用的参数,也可以直接接受它们。
默认情况下,它会将您传递到标题页,但是如果您调整proxy_pass字段,则应该可以将其传递给您的应用。