casphp
1. 如何配置CAS php 單點登錄求詳簡。。。
你可以試試這個方法:你得用redirect來保證cookie被存到瀏覽器,不過我覺得你也可以用javascript發送http請求來保證cookie
被記錄在第二個domain下面。
What
we
have
implemented
on
a
few
sites
that
use
a
single
sign
on
is
a
round
trip
login
process.
The
user
authenticates
on
the
first
domain,
we
encrypt
the
login
details,
and
redirect
them
to
a
known
page
on
the
second
domain,
log
them
in
there,
and
then
redirect
back
to
the
original
server.
This
client
side
redirection
is
important
-
cookies
are
only
written
when
there
is
a
response
back
to
the
client,
and
the
browser
has
to
visit
the
second
domain
to
actually
see
the
cookies.
2. phpcas登錄遇到的問題
使用apereo/phpcas包完成單點登錄,某一次項目中,本地測試沒有問題發布線上之後cas登錄頁出現Error Internal script failure。
看到Error Internal script failure這個錯誤,完全不知道問題出在哪裡,各種搜索沒有找到答案,無奈進入源碼。看到一個log方法,好像是用來記日誌的,判斷的filename存在就記錄日誌,繼續找到看到了setDebug,在setDebug中去設置了日誌文件目錄之後就可以記錄日誌了通過日誌看具體問題。
終於在日誌里看出了問題在寫入session時文件沒有寫入許可權導致cas登錄失敗
3. php cas客戶端session不同步問題怎麼解決
如果使用phpcase等cas系統提供的客戶端sdk,他幫我們自動做好了session的處理:cas中心驗證用戶憑證後,會把用戶信息傳遞給子系統,子系統的客戶端sdk會把cas中心傳回來的用戶信息保存到session中(默認是保存user),並且在返回瀏覽器時將sessionid寫到cookie中
可以在子系統登錄後,列印出sessionid和內容
var_mp(session_id());
var_mp("<br/>");
var_mp($_SESSION);
比對瀏覽器cookie中的sessionid,可以看到cookie和session中的sessionid是一致的,並且session中有了user這個屬性,就是用戶登錄時填寫的欄位
4. 如何配置使用CAS的PHP客戶端
整個配置過程我劃分成四步驟:
1、准備CAS的PHP庫和相關庫文件
1)到CAS的網站下載文件phpcas-0.60-rc7.zip
2) 由於其用到了PEAR的DB庫,需要到PEAR網站去下載。
下載文件PEAR-1.7.1.tgz和DB-1.7.13.tgz 也可在google上搜索。
當然不一定是我說的版本,但我給的是我試驗成功的版本。
3) 用於使用到了SSL所以需要下載openssl。當然我是在windows環境下試驗的,下載的是
其的windows版本。
4)安裝openssl。
2、配置PHP環境
1)將phpcas-0.60-rc7.zip解壓,我們選在了PHP環境的include目錄。在其下建立cas將文件解壓進去。
2)同理將PEAR-1.7.1.tgz和DB-1.7.13.tgz解壓,也分別建立pear和db兩個目錄。
3)修改php環境的ini文件,一般是php.ini文件。將我們前兩步驟建立的目錄加入到include_path中。根據安裝環境修改對應的unix或windows項。
4)由於phpcas用到了CURL(用於連接ssl)和DOMXML(用於處理CAS伺服器返回的消息)兩個組件,因此需要保證php解釋環境需要有這兩個擴展。需要做的就是修改ini文件將extentions節下的屏蔽符號去掉,然後就是檢查PHP環境的extentions目錄下是否有對應的.dll或.o文件。一般標准安裝都會有。
3、測試CAS的php客戶端
1)前面做完後,應該比較激動了,很想看看php程序到底能不能訪問CAS呢。
2)在phpcas-0.60-rc7.zip中的docs/examples中有幾個測試程序。當然我們先前解壓的目錄下也有。
3)我們只是看一下通了沒有,因此拷貝example_simple.php文件到apache的htdocs下。具體根據你的web伺服器配置。總之目的就是能通過瀏覽器訪問example_simple.php。在用之前需要修改
example_simple.php文件,主要是要修改裡面關於CAS伺服器配置信息,修改代碼中的phpCAS::client(...)這一句。整個方法意義如下:
phpCAS::client(CAS_VERSION_2_0,'服務地址',埠號,'cas的訪問地址');
將自己的服務地址和埠號和cas的相對服務地址的url填如就可以了,例如:phpCAS::client(CAS_VERSION_2_0,'localhost',8443,'cas');表示可以通過localhost:8443/cas訪問到CAS服務。
4)在瀏覽器里試驗一下吧,沒有意外的話會看到CAS的登錄界面。這就表示配通了。
4、根據項目需要修改對應的PHP代碼,加入對CAS的調用,將用戶登錄交給CAS我們只需處理對應的用戶,在PHP程序中的許可權問題了。對於舊有就有的PHP代碼只需要用訪問CAS服務換掉驗證用戶身份部分就可以了。
調用CAS關鍵性代碼:
include_once('CAS.php');
//可以不用,用於調試,可以通過服務端的cas.log看到驗證過程。
phpCAS::setDebug();
// 初始化phpcas
p hpCAS::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();
}
當然CAS除了它默認的登錄界面和校驗邏輯,還是允許自行定義的。
如何自定義登錄界面,後續在談。
轉載僅供參考,版權屬於原作者。祝你愉快,滿意請採納哦
5. php cas單點登錄如何獲取用戶信息而不跳轉到登錄頁
asjx 獲取cookies 即可
6. 如何配置使用CAS的PHP客戶端
1)下載CAS php客戶端。我下載的是CAS-1.3.3版本
2)文件結構,如圖:
3)在php項目根目錄下面創建cas文件夾。拷貝CAS文件夾,CAS.php,docs文件夾下的examples下面的文件 至php項目cas文件夾中。
4)修改CAS.php文件example_html.php文件
修改phpCAS::client(CAS_VERSION_2_0, $cas_host, $cas_port, $cas_context);為
phpCAS::client(CAS_VERSION_2_0, '127.0.0.1', 8443, 'cas');
以上步驟,可完成php的cas配置。但是根據具體項目,需要稍作修改。