php 模拟 cas,CAS的PHP客户端实践:PHP程序实现单点登录

loading...

兄弟近日尝试将一个php程序以单点登录方式和原有的系统整合在一起。

验证服务器选用的是CAS,其提供有相应的php客户端。

整个过程如下:

1、搭建CAS服务器

2、搭建php应用环境

3、下载相应的php库

4、修改php应用环境配置

5、测试cas的php客户端

6、修改原有的程序,使用CAS来完成登录。

具体细节如下:

一、搭建CAS服务器

这个比较简单,网上文章也比较多,我就不罗嗦了。基本步骤为:1、制作签名 2、打开SSL 3、部署CAS服务 4、利用cas的java客户端拦截应用。

二、搭建php应用环境

现在流行的组合是apache+php4+mysql.大家可以搜索相关资料。而且在windows环境下,有几个整合了三个的傻瓜服务程序如:APMXE、XAMPP、easyphp等,大家可以下载下来,直接运行即可,不用在自己去配置了。

三、下载相应的php库

要想在php环境下连接CAS服务,就必须有php下的客户端。而在CAS的网站上提供有相应的客户端库下载phpcas-0.6.0-RC7.zip.

该客户端使用了PEAR库,所以还得下载PEAR及PEAR的DB库。因为其也使用了SSL,所以还得下载openssl。

下载完成后将,安装openssl。并将三个php库,分别解压到php的includes目录下(其实目录可以自行定义)。

四、修改php的应用环境配置

1、修改php.ini文件中的include_path,将三个库的目录加入到搜索路径中(使用";"隔开)

2、检查php.ini文件中的extentions看curl和domxml是否打开,如果没有请打开,phpcas使用了curl来连接ssl。

3、检查一下php引擎的extentions目录看有没有对应的dll(与php.ini文件中的文件名一样)。如果没有的话就从比较完整的php4中拷贝吧。(一般会有的除非你的php引擎是被人精简的)

五、测试一下cas的php客户端

将phpcas-0.6.0-RC7.zip中的docs目录下的examples的example_simple.php解压到apache的htdocs下。

启动apache服务。

在浏览器中访问example_simple.php程序。如果看到登录界面,并且登录完毕后,回到example_simple.php下,并输出了你的用户名。则表示一切ok了。

六、修改原有的程序,使用CAS来完成登录

如何修改呢,那就看你的应用了。看你如何整合了,应用CAS只是负责验证,而不负责权限等的分配。

一般有两个方法:

1、对应法,在php应用中建立有一个对应关系表。通过获得CAS的用户名称来查找对应的用户。

2、一致法,在php应用中的用户和CAS的用户名称是一致的。获得CAS给的用户名,就直接分配权限。

cas的php 客户端使用关键性代码如下

include_once('CAS.php');

//可以不用,用于调试,可以通过服务端的cas.log看到验证过程。

phpCAS::setDebug();

// 初始化phpcas

phpCAS::client(CAS_VERSION_2_0,'服务地址',端口号,'cas的访问地址');

例如:phpCAS::client(CAS_VERSION_2_0,'localhost',8443,'cas');

// 不使用SSL服务校验

phpCAS::setNoCasServerValidation();

// 访问CAS的验证

phpCAS::forceAuthentication();

这时候就验证完毕了

获得用户名可以通过phpCAS::getUser()

//登出

if (isset($_REQUEST['logout'])) {

phpCAS::logout();

}

至此你的php应用就具有了单点登录能力,顺便说一下,现在有很多php的开源程序已经具有连接CAS服务器的能力。这给我们做单点登录应用提供了很大的方便,优先选择吧呵呵。

如果有什么想交流的话可以msn:faye.feelcool@gmail.com或直接mail me。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值