Pra*_*arg
12
java
cas
jasig
我们正在尝试将CAS服务器用于我们现有的基于Web的应用程序的SSO.我们的目标是
- 跨越各种应用程序(包括跨域)的Achive SSO.
- 当重定向到CAS Server登录页面时,为不同的应用程序定制登录(在UI术语中)页面.
- 能够在不进入CAS登录页面的情况下进行登录,原因是"小登录部分"嵌入在页面本身中,并且用户不会被重定向到CAS登录页面以获得更好的可用性.
我们完成了第一个和第二个目标.但是遇到第三个问题.
对于此功能,我们尝试复制与第二个目标相同的操作,唯一的区别是从非CAS登录页面提交/发布数据(凭据,登录票证等).
- 我们不能使用iframe在小部分中显示CAS登录页面,这很容易受到浏览器兼容性问题的影响.
- 我们不能使用ajax来使用CAS api来获取登录票并进行HTTP发布(跨域问题)
- 我们所做的是:通过在服务器端执行HTTP发布来检索非cas登录页面的加载上的loginticket和执行ID.当我们发布用户名/密码以及loginticket和execId时,CAS服务器而不是接受发布数据会将用户重定向到CAS登录页面,但是返回浏览器并再次提交数据工作正常.原因是CAS和浏览器之间没有建立jsession,因此CAS拒绝任何发布数据.我们可以使用CAS restAPI,但它只会登录用户,无法帮助完成SSO.
关于我们如何处理这个问题的任何想法?
谢谢,Pratik