单点登录:(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

单点登录网络生活中随处可见,比如登录了QQ客户端,然后你可以打开腾讯微博,QQ空间,QQ邮箱,校友录等等一系列的应用,这时候我们不需要在一个个再输入用户名和密码了,作为受信任的站点,就可以直接登录了。这些我们都已经习以为常了,其实这就是单点登录的例子,离我们一点都不遥远。但作为一个开发者,不只是要使用其功能,更要明白其原理并开发出支持单点登录的应用出来。

一直独自研究这些东西,曾在网上看到一篇不错的文章,讲的就是使用java完成简单的单点登录。从原理到实现到测试,通俗易懂,给了我很大的帮助,在此把地址贴出来,供感兴趣的读者去研究。java实现简单的单点登录 里面贴有源码地址,但好像不能访问了,我从其他地方找到了。上传到本站的资源模块,供大家下载。源码包下载地址

好了,言归正传,本文研究的是关于产品crowd实现的单点登录。

1,实现原理:通过cookie的存取来完成信息的交互。(也有通过使用webservice来实现的,本文暂时不考虑)

2,crowd介绍:crowd是atlassian公司推出的集成化组件的一个,用来实现单点登录,实现和配置简单,功能齐全,客户端接口耦合极小,这就给开发工作带来极大便利。

3,crowd的下载与安装。

可以去官网(http://www.atlassian.com/software/crowd/overview)下载最新版本,但最新版本未必可以找到破解版,所以如果只是下载学习和研究,暂时用低版本的就可以了,crowd 2.0.4基本包含了所有功能。从官网下载到2.0.4之后,就可以着手安装与破解了。破解包下载地址

解压crowd 2.0.4

文件结构如下:

可以看到这是tomcat下发布的应用,start_crowd.bat时启动服务的文件,当然了,在linux系统下启动文件应是start_crowd.sh。启动之后,如果没有出先异常则表示正常启动,如果出现了,请检查java_home的配置。这个tomcat的端口号是8095,一般情况不会冲突。

如果出现上面这样的信息打印出来,那么恭喜你,你的tomcat启动成功,可以进行接下来的破解和配置了。

在浏览器中输入地址:http://localhost:8095/crowd/console访问crowd的控制台。页面如下:

这时候需要我们输入:其结构如下:

可以看到,keygen.bat是启动文件,但如果你的jdk安装路径不是在C盘,直接点击该文件会出现如下问题:

最保险的办法是直接运行crowd_keygen.jar,如果你的电脑上可以直接双击大概*.jar文件,则万事大吉。要不然可以用这个办法:win+r-->cmd-->定位到该文件所在路径,如下图:


回车后,会启动一个对话框:

name可以随意输,但不要太短,要不然会提醒。server ID 把浏览器中的server ID 拷贝出来填进去,先点.patch!,需要你选择当前文件夹中的atlassian-extras-2.3.0.jar文件(这个文件或许是bak的,不要紧,直接改扩展名就是了):

选择之后点.gen!,然后在key中就出现了信息,这时候拷贝出来到浏览器中填入License Key,这样整个破解就结束了。

点击继续,这时候请注意,需要一路配置,这些个配置没有什么难点,如果只是学习和研究,没必要探究数据库层面的东西,暂时创建最简单的就可以了。

一路continue,遇到红*号必填内容,虽然可以随意填写,但请记住这些填过的信息,这是crowd的初始数据。尤其是用户名和密码过程,是配置完成之后用来登录crowd的用户名密码,千万不要填了就忘。

1,

,

2,


3,


通过以上过程,整体配置就算完成了。登录到首页后,如图所示:


可以看到4个已经存在的应用,这些应用都是发布完成的。

1,是当前登录的,crowd/console应用,暂且将之作为服务端。

2,作为openID的服务器,关于openID本文不讨论,有兴趣的同学们可以去阅读官方文档。

3,demo这是个小例子,可以从crowd文件夹中取出来放到其他服务器上,检测单点登录。

4,google-apps这个google的应用程序,暂且搁置。

至于

这些选项,多是用来限制权限和易于管理的。关于新应用的添加和配置,将在下节课在讨论。

Logo

Authing 是一款以开发者为中心的全场景身份云产品,集成了所有主流身份认证协议,为企业和开发者提供完善安全的用户认证和访问管理服务

更多推荐