【发布时间】:2012-04-26 12:26:59
【问题描述】:
我开始为我们为同一个客户端制作并仍在维护的 3 个不同的 web 应用程序开发 SSO 解决方案。
事情是,所有 3 个都通过 第四个单独的应用程序 将他们的用户和登录信息存储在同一个地方,该应用程序仅提供基本的 restful api 服务。 这基本上意味着当一个人尝试登录时,我们实际上会调用其余服务来询问此用户名和密码是否正确。
在某种程度上,这第四个宁静的东西已经至少完成了我们需要的一半工作。
我们现在需要一种方法让用户登录到 webapp A,然后点击链接(或简单地输入其 url)到 webapp B(或简单地输入它的 url)并到达那里已经登录(反之亦然)。
我已经阅读了很多关于 CAS 和 openID 甚至 oauth 的内容,但我还没有真正下定决心。 这个模式是集中式的吗?去中心化?
我的一万英尺视图表明我只需要将这个“缺失的功能”添加到我们宁静的 api 服务器。
但是怎么做呢?
ps:这三个是完全分开的。部署在不同的机器上(其中两台在 glassfish 上运行,另一台在 tomcat 上运行)。不同的域。
pps:它们都是 spring 驱动的 webapp(因此它们使用 spring-security)
ppps:截至今天,还有其他 webapps 使用我们的 restul api(非 spring,非 java)。 这个 sso 解决方案可能也必须准备好处理这些问题。
【问题讨论】:
标签: java spring-security single-sign-on cas