我正在我们的基础设施中设置 SSO,我想知道人们是否愿意分享他们的经验。
- 我的系统前面已经有一个反向代理。
- 我们有几个在 tomcat 上运行的遗留 Java 应用程序
- 我们也有用 JS 编写的 SPA 应用程序
- 我们很少有 API 也需要保护
我有两种方法可以为我们设置 SSO。
使用 mod_auth_openidc 在反向代理上设置 SSO,以便我们的网守确保访问我们服务的任何人都已经过验证。
为每个单独的服务添加一个 keycloak 库
我的偏好是在引用代理上进行设置。
在这方面有什么缺点/最佳实践吗?
对于遗留应用程序,我只会使用反向代理添加的 HTTP 标头来查找用户详细信息。对于新应用程序,我想使用 keycloak 库来获取用户详细信息。
我不想走一些明显有问题的路线。因此,非常欢迎任何可以节省时间的提示。
到目前为止,我想出了以下列表
使用代理服务器和 mod_auth_openidc 的专业人士
- 处理所有身份验证特定配置的单一位置
- 抽象出 SSO 的实现细节。例如,我们不需要将 keycloak 集成到每个服务中。在我看来,如果我们稍后决定实际迁移到不同的 SSO,这可能会导致问题。(我知道这不会经常发生)
使用代理服务器和 mod_auth_openidc 的缺点
- 要维护的附加软件(错误等)
- 如果应用程序还与 keycloak 集成,则可能对凭据进行额外检查(不需要,但只有在应用程序中需要 keycloak 特定功能且标题中不可用的功能时才需要)
我会对其他人对利弊的看法感兴趣吗?
谢谢