一、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與各系統之間約定的唯一辨別。