Nginx开源是否支持OpenID和JWT

时间:2019-03-15 18:58:14

标签: nginx jwt single-sign-on reverse-proxy openid

我有一个基本的Nginx docker映像,充当反向代理,当前在我的应用程序服务器前使用基本身份验证。我正在寻找一种将其与我们的SSO解决方案集成在一起的方法,该解决方案在使用JWT的开发中使用,但是所有文档都说它需要Nginx +。那么,是否可以在开源Nginx内进行JWT验证,还是需要付费版本?

3 个答案:

答案 0 :(得分:1)

当然,有开放源代码,您可以根据情况使用和自定义它们(example)。

恕我直言,有更好的实现,您可以将其用作应用程序前面的“身份验证代理”。我最喜欢的是keycloak-gatekeeper(您可以将其与任何OpenID IdP一起使用,不仅可以与Keycloak一起使用),它可以提供身份验证,授权,令牌加密,刷新令牌实现,占用空间小,...

答案 1 :(得分:1)

还有lua-resty-openidchttps://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字段,则应该可以将其传递给您的应用。