PHP集成cas-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

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与各系统之间约定的唯一标识。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章
最新文章
相关文章