【问题标题】:Does Nginx open source support OpenID and JWTNginx 开源是否支持 OpenID 和 JWT
【发布时间】:2019-08-06 22:02:51
【问题描述】:

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

【问题讨论】:

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


【解决方案1】:

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

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

【讨论】:

【解决方案2】:

还有lua-resty-openidchttps://github.com/zmartzone/lua-resty-openidc

lua-resty-openidc 是 NGINX 实现 OpenID 的库 连接依赖方 (RP) 和/或 OAuth 2.0 资源服务器 (RS) 功能。

当用作 OpenID Connect 依赖方时,它会对用户进行身份验证 针对使用 OpenID Connect Discovery 的 OpenID Connect 提供者和 基本客户端配置文件(即授权代码流)。使用时 作为 OAuth 2.0 资源服务器,它可以验证 OAuth 2.0 Bearer 针对授权服务器或 JSON Web 的访问令牌 令牌用于访问令牌,可以针对 预配置的密钥/密钥。

【讨论】:

    【解决方案3】:

    鉴于您设置了一个没有身份验证的配置,我发现它并让它工作:https://hub.docker.com/r/tomsmithokta/nginx-oss-okta,它完全基于上面提到的lua-resty-openidc。不过,它已经建成的事实对我很有帮助。

    首先在 Okta Web GUI 中配置您的 Okta 应用程序,然后填写 NGINX 示例配置中未注释掉的正确字段。唯一需要注意的是取消注释 redirect_uri 并填写它,而是注释掉或删除 redirect_uri_path 这是一个已弃用的字段。配置中的所有其他内容都是您可以使用的参数,或者直接接受它们。

    默认情况下,它会将您传递到标题页面,但如果您调整 proxy_pass 字段,您应该能够将其传递给您的应用程序。

    【讨论】:

      猜你喜欢
      • 2017-03-31
      • 2014-10-22
      • 2014-12-12
      • 1970-01-01
      • 2016-02-01
      • 2017-08-05
      • 1970-01-01
      • 2015-08-08
      • 1970-01-01
      相关资源
      最近更新 更多