我有六个应用程序,并且正在使用Jasig CAS对其进行身份验证。 Jasig CAS的Single Sign On对我来说真的很有效。

另一方面,Single Sign Off对我不起作用。从一个应用程序注销时,我无法从其根域访问其他应用程序,但可以使用其子服务来访问它们。

示例:

APP1 = http://domain.com/app1

APP2 = http://domain.com/app2

如果我从APP1注销,则无法访问http://domain.com/app2但可以访问http://domain.com/app2/someservice

信息:

我正在使用ProxyPass将应用程序定向到Jasig CAS。

在Apache CAS web.xml中,我添加了:

<filter>
    <filter-name>CAS Single Sign Out Filter</filter-name>
    <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>CAS Single Sign Out Filter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<listener>
    <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
</listener>

我的应用程序基于Jsp和Django。

CAS版本:3.3.10

----更新----

通过将应用程序配置的“满意”参数从“any”更改为“all”,我设法解决了6个应用程序中的4个。

在Tomcat中部署了6个应用程序中的2个,并且为了使其在apache上运行,使用了mod_jk。当我尝试输入其中任何一个应用程序时,都会收到重定向循环错误。因为

1-)从CAS生成票证的申请请求票证

2-CAS提供票证生成票证

3-)应用程序重新发送票证生成票证以获得票证

4-)CAS重定向到应用程序的主页

5-)返回状态1

当我查看cas.log文件时,我看到了

未设置FormObjectClass。将org.jasig.cas.authentication.principal.UsernamePasswordCredentials的默认类与formObjectName凭据和验证器org.jasig.cas.validation.UsernamePasswordCredentialsValidator一起使用。

错误

有什么建议 ?

最佳答案

您是否将“django-cas-client”用作身份验证后端?

我不确定您是否需要在JaSig CAS端配置任何内容以进行单点签核。这是注销的一种方式,您可以自由使用它或不使用它。

您可能需要研究以下文章:

  • http://www.goldmund-wyldebeast-wunderliebe.nl/tech-blog/blog-posts/sso-in-plone-and-django-using-jasig-cas-part1-install-and-cthisonfigure
  • http://www.goldmund-wyldebeast-wunderliebe.nl/tech-blog/blog-posts/sso-in-plone-and-django-using-jasig-cas-part2-authentication-in-django-and-plone
  • 10-02 08:09
    查看更多