日期 | 2005年8月1日 |
作者 | gauss |
类型 | 安全认证 |
内容 | 系统如何应用集中认证 |
系统如何应用集中认证
一、 标签二应用集中认证的流程:
二、 制作认证服务器的流程(以下生成过程均在websphere6.0下进行的)
1. 开始—所用程序—IBM Http Server—启动密钥管理实用程序
进入IKeyMan 如图:
2. 点击“密钥数据文件/新建”,选择密钥类型为CMS
3. 生成服务器私钥
点击确定,即如下一个界面
输入密码,选择“将密码存储到文件吗?”,单击确定
选择“密钥数据库内容”中下拉选项中的“个人证书请求”,点击新建生成证书请求文件
输入相关信息,保存。
4. 提交证书请求文件至CA生成服务器证书将生成的certreq.arm放送给信诚通,生成服务器证书。
5. 选择签署人证书选项,导入CA根证书选择签署人证书选项—添加
浏览选择根证书,单击确定
6. 选择“个人证书”选项,导入CA颁发的证书选择“个人证书”选项—接收
浏览选择由信诚通颁发的服务器证书。单击确定
完成了服务器证书的制作。
三、 配置SSL
1. 修改IBMHttpServer/conf/httpd.conf文件,在最下面增加:
LoadModule ibm_ssl_module modules/IBMModuleSSL128.dll
Listen 80
Listen 443
Keyfile F:/NEW/key.kdb
SSLDisable
SSLV2Timeout 100
SSLV3Timeout 1000
<VirtualHost *:80>
ServerName netsoft-4d52657
</VirtualHost>
<VirtualHost *:443>
ServerName netsoft-4d52657
SSLEnable
SSLClientAuth optional
</VirtualHost>
注意密钥文件是刚才通过ikeyman工具生成的密钥文件,服务名为主机名(底色为黄色部分是要根据实际情况要修改的)
2. 配置文件的正确与否可通过bin/apachectl configtest进行测试
3. 使用bin/startServer.sh命令启动websphere
5. 点击环境/虚拟主机,选择default_host,进入“主机别名”选项,增加443端口。
6. 点击“环境/更新WEB服务器插件”,点击确定更新插件
7. 重启websphere,然后使用apachecrl start启动IBMHttpServer服务器
四、 客户端个人证书
到信诚通的网站上面下载个人证书申请表,填写完相关内容后发送给信诚通相关人 员,制作证书,我们在测试集中认证的时候采用的是软证书。附带有一个我申请的人证 书。
五、 安装认证页面
1. 拷贝以下文件至%WebSphere%/java/jre/lib/ext目录下(这些jar包均在所附的lib里面)
comm.jar
jCert.jar
js.jar
local_policy.jar
rt.jar
US_export_poliyc.jar
Am.jar
Jce1_2_2.jar
Jnet.jar
Jsse.jar
Poolman.jar
Sunjce_provider.jar
2. 拷贝cacerts至%WebSpere%/java/jre/security(没有找到我想应该是:%WebSpere%/java/jre/lib/security)
3. 修改%WebSpere%/java/jre/security/java.security文件(没有找到我想应该是:%WebSpere%/java/jre/lib/security/java.security,添加security.provider.n=sun.security.provider.Sun,其中n根据文件中原有的JCE priovide数量确定
4. 拷贝asaservice.property文件至%WebSpere%/property目录,并根据实际的部署环境修改文件(参数说明另附说明文件)
5. 发布auth.war,虚拟目录定为auth
auth.war的作用就是通过调用https://主机域名/default.jsp?id=label(id=label,就是转发的一个标志,具体定义,参考参数的说明)来读取客户端的个人证书信息并连接认证服务器进行验证,产生tokenID,然后将tokenID放到客户端的cookie中,并转发到相应的页面,其中这个页面是在asaserver.property所定义的。
6. 重启WebSphere
六、 安装认证系统需配置的参数(asaserver.property文件中所定义的)
1. :登录失败后显示的网页地址;(我们应当设置为系统的首页面)LOGIN_FAILURE
2. :tokenid的生存时间,单位为秒,-1表示关闭当前浏览器后清除;MAXAGE
3. :登录后需要访问的应用系统的域,auth.war部署所在电脑的域名。DOMAIN
4. 和default.jsp需放在同一虚拟目录下。ASAService.jsp
5. 为首页传至认证网页的参数名。例如现在我们用id,当然也可以设置为其它。PROPNAME
6. 为认证服务器的IPHOSTS
7. 定义参数值和实际网址的映射关系
如:label=http://主机域名:9080/LabelWeb/
在本系统中我们需要定义一下参数和实际网址的映射关系,
eplat= http://主机域名:9080/ePlatformTestWeb/login.jsp
七、 部署Label.ear,参考文档《Label的部署》
八、 安装客户端个人证书
双击个人证书:410221198104168832 张先亮
一路“下一步”直到完成,
九、 登录项目:
1、 登录系统主页面:通过url:http://主机域名:9080/ePlatformTestWeb/
登录。出现如下页面
2、 进入系统
根据你的用户类型来选择不同的登录入口,如上图,在主页面上提供了三个不同的系统入口,受理机构用户,企业登录,企业注册。我们不妨假设以受理机构的身份登录,点击“受理机构登录”的图片。
弹出页面:
确定
选择是
注:auth.war项目连接认证服务器对证书进行验证,若通过,测转发到标签系统的不同用户系统的主页面;由于我们这边配置有些问题,当auth.war项目执行到String tokenID = Login.auth(clientID,request.getRemoteAddr());系统出错,这个问题一直没有解决;然后我们采用信诚通的认证服务器,且auth.war部署在他们那边,通过信诚通提供的入口https://demo.itownet.cn/auth/default.jsp?id=itown11,虽然证书通过了验证且转发到了对应的页面,但是没有得到tokenID,与信诚通沟通交流后,还是没有解决这个问题,估计是域名的设置有问题。若采用他们的认证服务器,可以就这个问题继续与信诚通方面交涉。在我们作开发的时候,我修改了auth.war包,经证书的合法性验证方法修改了,不是通过认证服务器对证书进行验证,而是直接根据信诚通的根证书,对个人证书进行验证,通过根证书来验证个人证书是否是由这个根证书所签署,且有效期是否有效等等。验证通过后,将个人证书的信息放入到cookie中,而在系统调用信诚通提供的接口对用户进行二次验证的时候,我们注销了这个方法,而是采用一种变通的方法。就是若cookie中含有认证后的信息,就可以直接登录系统,若没有则返回系统的主页面。当然这种方法有着很大的缺陷,但这仅仅是我们应用在系统的开发阶段。真正具体到实际应用的时候,我们只需要将loginAction中调用信诚通提供的接口的地方取消注销就是,其它地方不要修改。 采用我们的模式,在上图点击是以后,会出现如下页面
说明:
ePlatformTestWeb是我自己应用《电子平台的J2EE安全体系》做的一个测试项目,只是为电子平台系统的框架构建提供一个参考。
分享到:
相关推荐
一个简单的安卓登录认证例子,通过该例子可以认识学习安卓线程的概念
一个简单的JSP例子 包括页面登陆,后跳转到主页面,然后可以实现数据库的新增修改删除操作
一个简单的线程例子一个简单的线程例子
was 安全认证例子
java工厂模式一个简单的工厂模式例子工厂模式简单代码案例,仅供参考。java工厂模式一个简单的工厂模式例子工厂模式简单代码案例,仅供参考。java工厂模式一个简单的工厂模式例子工厂模式简单代码案例,仅供参考。...
一个简单的例子,有助于开发人员参考进行后续开发,一个简单的demo
一个简单的tcp例子,socket的发与接的例子
这是我写的一个很精简的Ajax例子里面对相关的Ajax的代码段有详细的描述,希望对正在学习Ajax的朋友有所帮助
Oauth认证的简单例子,很适合新手学习
很简单的一个AJAX例子 .rar很简单的一个AJAX例子 .rar
vector使用的一个简单例子 vector使用的一个简单例子 vector使用的一个简单例子 vector使用的一个简单例子 vector使用的一个简单例子
java 一个关于泛型的简单例子 java 一个关于泛型的简单例子 java 一个关于泛型的简单例子
一个简单的mvc例子,李刚老师的例子一个简单的mvc例子,李刚老师的例子一个简单的mvc例子,李刚老师的例子
一个简单的struts例子一个简单的struts例子一个简单的struts例子一个简单的struts例子一个简单的struts例子一个简单的struts例子一个简单的struts例子一个简单的struts例子一个简单的struts例子一个简单的struts例子...
一个简单的spring例子,欢迎下载,使用
一个简单的java例子,没什么参考价值,建议不下载
一个极简单JavaFX例子!其实JavaFX也挺不错的,值得了解了解!
一个简单的as3例子 一个简单的as3例子 一个简单的as3例子
一个activemq的简单例子,我只是留个备份,你们想要可以私聊我
(WCF) 二、一个简单的WCF例子:http://blog.csdn.net/xiaoyong322/article/details/8540379