java active directory 单点登录_CAS FOR WINDOW ACTIVE DIRECTORY SSO单点登录

一、CAS是什么?

CAS(Central Authentication Service)是 Yale 大学发起的一个企业级的、开源的项目,旨在为 Web 应用系统提供一种可靠的单点登录解决方法(支持WEB及客户端)。

CAS 开始于 2001 年, 并在 2004 年 12 月正式成为 JA-SIG 的一个项目。

二、主要特性

1、开源的、多协议的 SSO 解决方案; Protocols : Custom Protocol 、 CAS 、 OAuth 、 OpenID 、 RESTful API 、 SAML1.1 、 SAML2.0 等。

2、支持多种认证机制: Active Directory 、 JAAS 、 JDBC 、 LDAP 、 X.509 Certificates等;

3、安全策略:使用票据( Ticket )来实现支持的认证协议;

4、支持授权:可以决定哪些服务可以请求和验证服务票据( Service Ticket );

5、提供高可用性:通过把认证过的状态数据存储在 TicketRegistry 组件中,这些组件有很多支持分布式环境的实现,                   如: BerkleyDB 、 Default 、 EhcacheTicketRegistry 、 JDBCTicketRegistry 、 JBOSS TreeCache 、 JpaTicketRegistry 、 MemcacheTicketRegistry 等;

6、支持多种客户端: Java 、 .Net 、 PHP 、 Perl 、 Apache, uPortal 等。

三、CAS原理

关于原理网上已有很多资料。如:http://www.cnblogs.com/shanyou/archive/2009/07/14/1523671.html

本次博文主要讲解CAS如何与WINDOWS的ACTIVE DIRECTORY进行结合。因为网上大部分的资料都是与LDAP整合,而ACTIVE DIRECTORY也是基于LDAP协议的。

1、运行环境:

window 8.1 + tomcat 8.0.30 + JDK 1.8 + CAS SERVER 4.0 +CAS Java Client + CAS .NET Client(包含example)

2、部署:

将tomcat复制为三份,分别为tomcat-cas,tomcat-app1,tomcat-app2

(本次tomcat-server没用使用https的方式,如何将https修改成http请自行网上搜索。另https的配置需要证书,通过java的keytools工具进行生成或购买的证书。)

d2fc1e9c91626b410b35426a27727d6c.png

修改各tomcat端口号(tomcat-cas保持原始端口号)

tomcat-app1:

312066c34dc6777ac7e554262e72cdf3.png

a8f80773985f65cb2afed31955f3216f.png

3b22ef0a30014c5a0c1c413692d52482.png

tomcat-app2:

3068da052c9eef4f69273c50c4102d48.png

将Cas Server 4.0 RELEASE解压,在module中cas-server-webapp.war复制到tomcat-server webapps目录下。

c8768af440dffd8b771bca2c0076353c.png

建立Java Web工程,将Cas Java Client工程引用(当然可以通过Maven的方式)。

dac0791acdad9dd25faea641912e586c.png

配置Cas Client web.xml

org.jasig.cas.client.session.SingleSignOutHttpSessionListener

CASSingle Sign OutFilter

org.jasig.cas.client.session.SingleSignOutFilter

CASSingle Sign OutFilter

/*

CASFilter

org.jasig.cas.client.authentication.AuthenticationFilter

casServerLoginUrl

http://localhost:8080/cas/login

serverName

http://localhost:8081

CASFilter

/*

CASValidationFilter

org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter

casServerUrlPrefix

http://localhost:8080/cas

serverName

http://localhost:8081

CASValidationFilter

/*

CASHttpServletRequest WrapperFilter

org.jasig.cas.client.util.HttpServletRequestWrapperFilter

CASHttpServletRequest WrapperFilter

/*

CASAssertion Thread LocalFilter

org.jasig.cas.client.util.AssertionThreadLocalFilter

CASAssertion Thread LocalFilter

/*

发布Cas Java Client到tomcat-app1和tomcat-app2

cb44c68236865ea1abc4519af92fbeb7.png

配置cas-server(可根据官网进行配置)

找到cas-server下deployerConfigContext.xml。

e7bed3983a221bca90d015c68751eaab.png

1c6b16bd5867fd41df24ccf89341c5c7.png

d35f178f0bd4f0bc709eb0462216f935.png

d5fca01e635a51694f114453a8ebe893.png

61521bcba1578f78e33a0188a6c0b7b7.png

其中LADP相对应的配置值是通过cas.properties进行配置

1538b5c6760508a5996ef0adc1858816.png

d6751c2584c1965fcea20c632e8b2765.png

d9caae09b664caab4d9495b1b723bb01.png

配置已结束。此次配置中用户登录主要是通过AD中的UPN进行匹配登录。

运行各tomcat(通过tomcat下bin目录下startup命令,window是startup.bat。 linux或mac下使用startup.sh)

Cas .NET Client配置(ExampleWebSite工程下web.config)

b826852879e9f51ae6e3f716ead68b2d.png

484e09c74ea04d50e88f0739fa085a15.png

运行测试

.NET Client运行未登录

62e9f68a05736072881f91a3bf0ee6ad.png

点击登录会自动跳转到cas-server登录页,进行登录:

3effaaa152f1e38618a89378e8a46f2e.png

登录后会自动跳转到.NET CLIENT客户端,在客户端上并显示当前登录的信息。

d0b8ffcaacad0c5f178d18594de7a2f2.png

直接访问tomcat-app1和tomcat-app2,会自动登录并获取到当前的登录用户。

19e1562235a19d3c21c560c3f76d0b40.png

a3c81e2ead02b2a59582c289f9bf26fa.png

点击任一系统中的注销(http://localhost:8080/cas/logout):

622b8ec57b6103f8e67e5bebb43afed4.png

再访问.Net Client,登录系统会自动被注销

e98f8fb95a94e978ba5ba7b97fb5f66e.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值