2

我正在我们的基础设施中设置 SSO,我想知道人们是否愿意分享他们的经验。

  • 我的系统前面已经有一个反向代理。
  • 我们有几个在 tomcat 上运行的遗留 Java 应用程序
  • 我们也有用 JS 编写的 SPA 应用程序
  • 我们很少有 API 也需要保护

我有两种方法可以为我们设置 SSO。

  1. 使用 mod_auth_openidc 在反向代理上设置 SSO,以便我们的网守确保访问我们服务的任何人都已经过验证。

  2. 为每个单独的服务添加一个 keycloak 库

我的偏好是在引用代理上进行设置。

在这方面有什么缺点/最佳实践吗?

对于遗留应用程序,我只会使用反向代理添加的 HTTP 标头来查找用户详细信息。对于新应用程序,我想使用 keycloak 库来获取用户详细信息。

我不想走一些明显有问题的路线。因此,非常欢迎任何可以节省时间的提示。

到目前为止,我想出了以下列表

使用代理服务器和 mod_auth_openidc 的专业人士

  • 处理所有身份验证特定配置的单一位置
  • 抽象出 SSO 的实现细节。例如,我们不需要将 keycloak 集成到每个服务中。在我看来,如果我们稍后决定实际迁移到不同的 SSO,这可能会导致问题。(我知道这不会经常发生)

使用代理服务器和 mod_auth_openidc 的缺点

  • 要维护的附加软件(错误等)
  • 如果应用程序还与 keycloak 集成,则可能对凭据进行额外检查(不需要,但只有在应用程序中需要 keycloak 特定功能且标题中不可用的功能时才需要)

我会对其他人对利弊的看法感兴趣吗?

谢谢

4

0 回答 0