PHP集成cas

一、PhpWeb客户端配置

 首先php的配置文件中(php.ini)要支持extension=php_curl.dll。将提供的CAS-PHP解压(点此下载链接下载, 提取码:qwer),把里面的CAS文件夹和CAS.php拷贝到项目根目录。

二、新增Init.php文件

在项目根目录下新增Init.php。其内容为:

<?php
include_once "CAS/CAS.php";
phpCAS::setDebug();
//指定cas地址,第一个为cas版本,一般为CAS_VERSION_2_0
//第二个参数为cas地址,第三个为cas的端口,第四个是cas的上下文
phpCAS::client(CAS_VERSION_2_0,'cas.jnsjsxy.com',3193,'/cas',true);
//sso退出时,cas会请post应用带上logoutRequest参数,请求应用地址。
//设置no ssl,即忽略证书检查。
phpCAS::setNoCasServerValidation();
//phpCAS::handleLogoutRequests()可以响应sso退出请求,注销当前用户认证凭据。
phpCAS::handleLogoutRequests();
phpCAS::forceAuthentication();
//$_REQUEST['logout'] 只是本应用退出参数。同时退出所有sso应用。
//param可以指定 业务系统的service和url。可以参考cas官方说明。
if(isset($_REQUEST['logout'])){
    $param = array('service'=>'http://cas.jnsjsxy.com:3193/cas/');
    phpCAS::logout($param);
    exit;
}
?>

三、项目本身文件修改

找到项目的登录页,在登录页面顶部添加以下代码:

<?php 
require_once ("Init.php");
 $username = phpCAS::getUser();
 if ($username!=null){
     session_start();
     $_SESSION['username'] = $name;
     //echo "<script> alert('{$username}') </script>";
 }else{
    跳转登录页}
?>

四、注意事项

如果要实现与cas的统一集成,需要各个业务系统与cas的身份做唯一标识,用此唯一标识进行约束,cas登录验证返回的也是该标识字段(当然可以包含多个消息报文)。

需要对原有业务系统的验证部分进行微调。

只需要判断是否能取到用户名即可。获取用户名的方式

$username = phpCAS::getUser();

此处得到的为cas与各系统之间约定的唯一标识。

上一篇:快速搭建云服务器必备环境LAMP


下一篇:Linux系统常用命令之文件目录管理命令