工作中要用到这个, 转载自 http://cxlh.iteye.com/blog/256707
想一下这样的应用场景,我目前在互联网上使用的产品较多,主要产品包括:
- 我在JavaEye上开了一个博客
- 我在Google开了一个Gmail邮箱
- 我在ZOHU中开了一个在线文档编辑的帐户
- 我在CSDN中有个论坛账号
开源产品实现: 我现在各个网站的登录账号不一,操作实在麻烦,我想设计一个模型,只要登录一次,我就能访问任何系统,怎么来实现呢?主要包括以下几个方面的工作:
- 我需要一个集中的用户目录来管理统一认证过程中的用户,并且可支持目前主流的SSO产品,这里我选用OpenLDAP
- 我需要一个SSO产品来实现统一认证,用IBM的TAM很容易实现,但抱歉,太庞大而且是商用的,这里我选用CAS
- 我需要一个简易的平台来实现单点登录口,并在登录成功之后显示:我的JavaEye博客,我的邮箱Gmail,我的在线文档,我的论坛,退出,其中点击任何系统,我都不需要再次登录,多美好的事情
好了,应用场景说完了,现在来说实现,先来架一个LDAP服务器吧,下载一个openldap-2.2.29-db-4.3.29-openssl-0.9.8a-win32_Setup.exe,按提示全部下一步,安装完成之后配置一下slapd.conf,关注以下配置信息的改动:
include ./schema/core.schema
include ./schema/cosine.schema
include ./schema/inetorgperson.schema
database bdb
suffix "o=me,c=cn"
rootdn "cn=manager,o=me,c=cn"
好了,利用lbe工具,以管理员cn=manager/secret的身份登录,配置一个单点登录的账号,如my/my,这样,ldap配置就告一段落。
安装CAS—Server:
首先让Tomcat支持SSL,下载JSSE工具,通过以下命令建立证书:
生成:keytool -genkey -alias tomcat -keyalg RSA
导出证书:keytool -export -alias tomcat -file server.crt
导入证书:keytool -import -trustcacerts -alias tomcat -file server.crt -keystore "C:/Program Files/Java/jdk1.6.0/jre/lib/security/cacerts"
显示:keytool -list -v -keystore "C:/Program Files/Java/jdk1.6.0/jre/lib/security/cacerts" > t.txt
删除:keytool -delete -alias tomcat -keystore "C:/Program Files/Java/jdk1.6.0/jre/lib/security/cacerts" -keypass changeit
修改Tomcat\conf目录下的Server.xml文件,让他支持SSL:
<Connector port="8443" keystorePass="changeit" keystoreFile="conf/.keystore" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" scheme="https" secure="true"
connectionTimeout="50000" disableUploadTimeout="true"
clientAuth="false" sslProtocol="TLS"/>
随便先搞个应用先,在另外的一个Tomcat(模拟集成系统,如命名为demo2)放一个Web应用,然后在此应用的web.xml中加入CAS过滤器即可:
<!-- CAS Filters -->
<filter>
<filter-name>CASFilter</filter-name>
<filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
<param-value>https://localhost:8443/cas/login</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
<param-value>https://localhost:8443/cas/proxyValidate</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
<param-value>localhost</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CASFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这样当访问demo2下的所有访问时,都会被重定向到统一认证登陆口(CAS登录口),登录会就能访问demo2应用了。
分享到:
相关推荐
**基于Cas的单点登录实现** 单点登录(Single Sign-On,简称SSO)是一种在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统的技术。它为用户提供了一种方便、高效的访问多系统的方式,同时减少...
Springboot+shiro单点登录实现,本文档是单点登录的全部源代码。
整个JEECG智能开发平台v3的单点登录实现,通过Kisso框架,既保证了功能的全面,又兼顾了配置的简便性和系统的扩展性。文档中也提到,通过访问官方论坛和加入相关QQ群,开发者可以获取更多的支持和交流。 需要注意的...
本文将详细探讨C/S(客户端/服务器)和B/S(浏览器/服务器)系统的单点登录实现方式,并阐述相关的接口规范。 首先,C/S系统的单点登录通常基于共享密钥或证书的方式。在这种模式下,客户端通过安全通信协议(如SSL...
本资源提供的"单点登录实现demo及说明.zip"包含了一个单点登录的实现示例和相关说明,方便开发者学习和参考。 一、单点登录原理 单点登录的核心在于共享认证信息。当用户在某个应用系统中登录后,系统会生成一个...
单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 本示例简单的实现了SSO认证系统,...
Java跨域单点登录(Single Sign-On,SSO)实现是一项关键的系统集成技术,它允许用户在多个应用系统中只需登录一次,就能访问所有相互信任的应用系统,无需再次进行身份验证。本项目代码着重展示了如何在Java环境中...
1,通过session会话来判断 2,实现单点登录
单点登录实现资料
通过以上步骤,我们便能成功地利用Spring、Shiro、Spring Data Redis和Spring Session Data Redis实现单点登录功能。这个解决方案不仅提供了便捷的用户体验,还降低了系统复杂性,提高了安全性。在实际开发中,可以...
本文主要介绍了用友U8开发单点登录方案的设计背景、应用场景、实现方式和技术细节。单点登录方案的设计目标是实现非U8系统与U8系统的集成,共享用户名和密码,实现单点登录。 设计背景 随着企业IT系统的发展,系统...
cas 单点登录解决方案可以通过多种方式来实现,例如使用 cas 服务器、LDAP 服务器、Active Directory 等。 cas 服务器可以作为身份验证服务器,LDAP 服务器可以作为用户信息存储服务器,Active Directory 可以作为...
总结:本文详细探讨了一种基于Thrift的跨平台单点登录实现方法,强调了Thrift在服务描述、服务端和客户端实现中的作用。这种方法克服了传统SSO方案如Cookie和Session机制的局限性,提供了更灵活、高效的解决方案,...
一种单点登录的实现方案,以jdk为例应用keytool自己制作https证书。
SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在多个相互关联的应用系统中只需要登录一次,即可访问所有系统,而无需再次输入凭证。这种技术在现代企业环境中非常常见,因为它提供了便捷的用户体验并...
本资源提供了单点登录的实现源码,包含三个工程:一个认证系统和两个子系统,便于开发者理解和学习SSO的实现机制。 首先,让我们深入了解一下SSO的工作原理。SSO的核心是中央认证服务器,当用户首次登录到任一子...
基于SpringBoot实现单点登录的两种方式,第一种(Session):SpringBoot+SpringSession+Redis;第二种基于(Session+Cookie):SpringBoot+Redis(redis集群+池化:一致性Hash分片算法) 实现单点登陆
文档中提到了Kisso的基本概念和实现单点登录(SSO)的技术细节,具体包括服务端和客户端的集成步骤以及相关配置文件的设置。 知识点详细说明如下: 1. Kisso单点登录原理: - Kisso实现单点登录(SSO)使用的是加密...
使用CAS实现SSO搭建指南;从头开始,最后结合eclipse实现,并介绍如何做出自己想要的程序。