政务单点登录分析报告.docx
- 文档编号:18234783
- 上传时间:2023-08-14
- 格式:DOCX
- 页数:20
- 大小:320.03KB
政务单点登录分析报告.docx
《政务单点登录分析报告.docx》由会员分享,可在线阅读,更多相关《政务单点登录分析报告.docx(20页珍藏版)》请在冰点文库上搜索。
政务单点登录分析报告
单点登录
分析报告
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
Josso介绍
特点
JOSSO是一个纯Java基于J2EE的单点登陆验证框架,主要用来提供集中式的平台无关的用户验证。
JOSSO主要特色:
1100%Java,使用了JAAS,WEBServices/SOAP,EJB,Struts,Servlet/JSP标准技术;
2基于JAAS的横跨多个应用程序和主机的单点登陆;
3可插拔的设计框架允许实现多种验证规则和存储方案;
4可以使用servlet和ejbSecurityAPI提供针对web应用,ejb的身份认证服务;
5支持X.509客户端证书的强验证模式;
6使用反向代理模块可以创建多层的单点登陆认证,并且使用多种策略可在每层配置不同的验证模式;
7支持数据库,LDAP,XML等多种方式的存储用户信息和证书服务;
8客户端提供php,asp的API;
9目前JBoss3.2.6和JakartaTomcat5.0.27以上版本支持。
由于Josso不能跨域方位,所以放弃此框架。
、
CAS介绍
CentralAuthenticationService.
Yale大学发起的一个开源项目,为Web应用系统提供一种可靠的单点登录方法,CAS在2004年12月正式成为JA-SIG的一个项目,是目前比较流行的服务于企业单点登录的解决方案之一,用户只需要登录一次就可以访问所有相互信任的应用系统,是一款不错的针对Web应用的单点登录开源框架,CAS的服务器提供了一套易于定制的用户认证器接口,用户可以根据自身企业的在线系统的认证方式,来定制自己的认证逻辑。
不论是传统的用户名/密码方式,还是基于安全证书的方式;是基于关系数据库的存储,CASServer给我们提供了这些常用的验证器模板代码,只要稍作修改,便可灵活使用了。
此框架为Java语言编写,当前版本3.2.1,基于Spring,可以很好的集成客户业务模块,扩展性强,安全性高。
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
特点
1、开源的企业级单点登录解决方案。
2、100%Java,框架基于Spring,可整合acegi(Spring权限控制)。
3、CASServer为需要独立部署的Web应用。
4、CASClient支持非常多的客户端(这里指单点登录系统中的各个Web应用),包括Java,.Net,PHP,Perl,Apache,uPortal,Ruby等。
5、运行环境:
任何J2EE容器,不依赖操作系统,跨平台。
框架结构
CAS包含两个部分:
CASServer和CASClient。
CASServer需要独立部署,主要负责对用户的认证工作;CASClient负责处理对客户端受保护资源的访问请求,需要登录时,重定向到CASServer。
服务器端结构
(cas.war):
客户端结构
(casclient.jar):
------------------------------------------------------------------------------------
客户端的存在方式:
以jar包的方式出现在web应用的web-inf\lib下,在web.xml中加入相应配置即可形成与服务端的认证方式。
如下图:
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
原理协议
单点登录的实现机制不尽相同,大体分为Cookie机制和Session机制两大类。
Session:
一种服务器端机制,当客户端访问服务器时,服务器为客户端创建一个惟一的SessionID,以使在整个交互过程中始终保持状态,而交互的信息则可由应用自行指定,因此用Session方式实现SSO,不能在多个浏览器之间实现单点登录,但却可以跨域。
Cookie:
是一种客户端机制,它存储的内容主要包括:
名字、值、过期时间、路径和域,路径与域合在一起就构成了Cookie的作用范围,因此用Cookie方式可实现单点登录,但域名必须相同。
目前大部分单点登录产品采用的是Cookie机制.
LDAP:
LightweightDirectoryAccessProtocolX.500目录访问协议
SSL握手协议:
认证用户和服务器,确保数据发送到正确的客户机和服务器,
加密数据以防止数据中途被窃取;
维护数据的完整性,确保数据在传输过程中不被改变。
HTTPS:
安全超文本传输协议
由于CAS使用Https协议,要在容器中配制SSL。
CAS的客户端以一个Web应用的Filter运行。
当Web应用的某个功能被请求时,Filter就会拦截应用的URL,从而迫使用户到CAS服务器进行登陆。
在所有不同的Web应用中,使用同一个CAS服务器进行登陆,即可达到单点登陆之目的。
X.509数字证书:
公共密钥,私有密钥。
用户在单点登录服务器的登录页面中,输入用户名和密码。
1、然后单点登录服务器会对用户名和密码进行认证。
2、认证通过之后,单点登录服务器会和应用程序进行一个比较复杂的交互,这通常是某种授权机制。
CAS使用的是Ticket。
3、授权完成后,CAS把页面重定向,回到Web应用。
Web应用此时就完成了成功的登录(当然这也是单点登录的客户端,根据返回的Ticket信息进行判断成功的)。
然后单点登录服务器会在客户端创建一个Cookie。
注意,是在用户的客户端,而不是服务端创建一个Cookie。
这个Cookie是一个加密的Cookie,其中保存了用户登录的信息。
4、如果用户此时希望进入其他Web应用程序,则安装在这些应用程序中的单点登录客户端,首先仍然会重定向到CAS服务器。
不过此时CAS服务器不再要求用户输入用户名和密码,而是首先自动寻找Cookie,根据Cookie中保存的信息,进行登录。
登录之后,CAS重定向回到用户的应用程序。
这样,就不再需要用户继续输入用户名和密码,从而实现了单点登录。
这种单点登录体系中,并没有通过http进行密码的传递(但是有用户名的传递),因此是十分安全的。
CAS系统安装
CAS服务端安装不依赖操作系统,下面我们在Linux下以Jboss为例,安装部署CAS服务端,并对客户端进行单点登陆测试。
JDK安装
这里我们默认为root用户登陆。
(我这里使用的1.6版本)
下载jdk1.5以上版本jdk-6u6-linux-i586-rpm.bin,放置任何目录。
进入jdk目录执行chmod+xjdk-6u6-linux-i586-rpm.bin修改执行权限为所有用户
执行./jdk-6u6-linux-i586-rpm.bin可以得到一个jdk-6u6-linux-i586.rpm的文件,如下图:
执行chmod+xjdk-6u6-linux-i586.rpm修改其起行权限
执行rpmjdk-6u6-linux-i586.rpm一路回车。
OK.
配置JDK环境变量
Vi/etc/profile.d/java.sh加入如下
配置完成后保存退出,shutdown–rnow后执行java–version如出现下图则JDK配置成功。
JBoss安装
下载jboss并copy到任意目录,为了统一管理,我这里把JDK和JBOSS都copy到了/work下
同样,修改jboss的执行权限chomd+xjboss-4.2.2.GA.zip并执行unzipjboss-4.2.2.GA.zip
设置jboss的环境变量
Vi/etc/profile加入如下
执行source/etc/profile立即生效
执行echo$JBOSS_HOME看是否成功
执行cd$JBOSS_HOME/bin
执行./run–b192.168.14.222,如果没有异常,测试一下http:
//192.168.14.222:
8080看是否正常
CAS安装
在安装CAS服务端直前,我们要利用JDK提供的keytool来生成webserver和client所用的数字证书。
1、生成服务端所用的安全证书,也就是CAS所部署的服务器。
这里我们是本机器
2、keytool-genkey-aliasmy-alias-name-keyalgRSA-keystorekeystore-file
3、keytool-export-filemyserver.cert-aliasmy-alias-name-keystorekeystore-file
4、keytool-import-keystore$JAVA_HOME/jre/lib/security/cacerts-filemyserver.cert-aliasmy-alias-name(web.app端导入)默认密码:
changeit
5、注意:
生成证书的时候提示问题密码可自定义,但名字必须填写域名!
不可为IP,否则部署的时候会报异常!
国家代码为CN
6、Copy声称的证书文件keystore-file和myserver.cert到JBOSS的/server/default/conf目录下
7、Copycas-server-3.2.1-release.zip包中\cas-server-3.2.1\modules下的cas-server-webapp-3.2.1.war更名为cas.war并copy到JBOSS的/server/default/deploy下
8、修改jboss-4.2.2.GA\server\default\deploy\jboss-web.deployer\server.xml配置JBOSS中SSL,指定证书位置与密码。
找到:
vampire-linux
9、同样在server.xml里找到:
keystoreFile="${jboss.server.home.dir}/conf/keystore-file"keystorePass="vampire"如下图:
OK,启动JBOSS,访问http:
//vampire-linux:
8080/cas/如能看到登陆页面则表示正常
配置数据库验证
下面我们要让CAS去数据库中匹配user,它默认是用户和密码相同就认为是合法身份,这里我们将它改回来。
Linux下安装MySql略
创建如下表:
CREATETABLE`app_user`(
`username`varchar(30)NOTNULLdefault'',
`password`varchar(45)NOTNULLdefault'',
PRIMARYKEY (`username`)
)ENGINE=InnoDBDEFAULTCHARSET=utf8;
并添加测试用户insertintoapp_user(username,password)values(“111”,”222”);
cas.war\web-info\deployerConfigContext.xml,找到cas.war中的这个xml注释掉
增加:
"/> mysql: //localhost: 3306/dbName CopyMySql的JDBC驱动包到cas.war的web-inf/lib下,重新发布。 。 。 客户端配置 CAS的客户端是以jar包的方式存在。 casclient.jar Copycas-client-2.0.11\cas-client-2.0.11\java\lib\casclient.jar到App.war\web-inf\lib下 Copycas-server-3.2.1-release\cas-server-3.2.1\modules\cas-server-support-jdbc-3.2.1.jar到同上目录下 Copymysql-connector-java-5.0.6-bin.jar到同上目录下 修改App.war\web-inf\web.xml //cas.server: 8443/cas/login //cas.server: 8443/cas/proxyValidate 8080 这里的cas.server为CAS服务器的域名,不能为IP. edu.yale.its.tp.cas.client.filter.loginUrl为验证入口; edu.yale.its.tp.cas.client.filter.validateUrl为代理验证入口; edu.yale.its.tp.cas.client.filter.serverName为验证成功回转web服务器地址,也就是App.war所在服务器。 登陆验证 我在jboss下部署了测试包test.war和vcom.war;分别在web-inf/web.xml做了如上配置。 现在我访问http: //vcom-vampire: 8080/test出现以下界面。 点击是后重定向到CAS服务端做user的合法性验证.如下图 此处输入我们安装mysql时插入数据库里的那条纪录 Name: 123 Password: 456 点击登陆后,用户基本验证通过,CAS服务器将下发ticket,并重定向到test应用,session里存放当前username如下图: ke: edu.yale.its.tp.cas.client.filter.user http: //vcom-vampire: 8080/test/? ticket=ST-1-tSxpgRrgOSWgFglWtFPp-cas 接着我们访问另个一web应用: vcom.war http: //vcom-vampire: 8080/vcom/? ticket=ST-2-6UEbe4aSEdQHrBiqjRLM-cas 此时重新向CAS服务器发起请求,当前验证通过,并重定向到vcom应用,如下图 XX系统 需求规格说明书 目录 第一章引言1 1.1.编写目的1 1.2.说明1 1.3.定义1 第二章任务概述1 2.1.背景1 2.2.主要业务需求1 2.3.主要建设任务1 2.3.1.建设系统的基本要求1 2.3.2.数据建设1 2.3.3.应用建设1 第三章需求描述1 3.1.模块标题1 3.1.1.子模块标题1 3.2.数据项描述1 3.2.1.表信息项1 3.3.性能需求1 3.4.安全性需求1 第四章系统运行环境要求1 引言 编写目的 『描述文档编写目的,示例如下,文档编写时删除绿色文字部分』 定义“XX系统”的总体结构、总体功能,定义软件系统的接口和数据属性,划分各子系统名称和功能,描述系统功能。 说明 『描述项目的任务提出方及开发方,文档编写时删除绿色文字部分』 定义 『定义在文档编写过程中使用的专业术语及用户约定的标
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 政务 单点 登录 分析 报告