TAM SSO 應用改造

Tivoliman發表於2007-07-31

總的思想是:webseal建立了junction之後,在使用者登入webseal成功,並試圖訪問後面應用的時候,會向後面的應用傳送包,在包的頭(header)裡面會放入一些資訊,放入什麼資訊是在建立junction的時候指定的。一般我們建議的方法是,只放入使用者名稱。login介面的改造就是要應用TRUST webseal發過來的資訊。

Login介面的工作過程:
後面的應用在接收到這樣的包的時候,首先可以透過ip判斷是不是從webseal過來的包,如果是的話,從包的頭裡面取出使用者名稱,呼叫應用本身的使用者儲存機制,確定這個使用者是不是一個有效使用者,如果是的話,就讓這個使用者正常登入,如果不是的話就拒絕,或是彈出對話方塊,讓使用者再次輸入。

--------------------------------------------------------------------
Please refer to the PHP and JSP sample code.


PHP example:

***********************************************
/* Check for values in $PHP_AUTH_USER and $PHP_AUTH_PW */

if ((!isset($PHP_AUTH_USER)) || (!isset($PHP_AUTH_PW))) {

/* No values: send headers causing dialog box to appear */
header('WWW-Authenticate: Basic realm="My Private Stuff"');
header('HTTP/1.0 401 Unauthorized');
echo 'Authorization Required.';
exit;

} else if ((isset($PHP_AUTH_USER)) && (isset($PHP_AUTH_PW))){

/* Values contain some values, so check to see if they're correct */

if (($PHP_AUTH_USER != "validname") || ($PHP_AUTH_PW != "goodpassword")) {
/* If either the username entered is incorrect, or the password entered is incorrect, send the headers causing dialog box to appear */
header('WWW-Authenticate: Basic realm="My Private Stuff"');
header('HTTP/1.0 401 Unauthorized');
echo 'Authorization Required.';
exit;
} else if (($PHP_AUTH_USER == "validname") || ($PHP_AUTH_PW == "goodpassword")) {
/* if both values are correct, print success message */
echo "

You're authorized!

";
}
}
?>
*************************************************************

JSP Example:

*************************************************************

String pass="Basic YWRtaW46MTIzNDU2";//這是base64加密後的,此表示為:使用者:admin 密碼:123456
if(request.getHeader("Authorization")==null)
{
response.setStatus(401);
response.setHeader("WWW-authenticate","Basic realm="請輸入管理員密碼"");
} else if( !(request.getHeader("Authorization").equals(pass)))
{
response.setStatus(401);
response.setHeader("WWW-authenticate","Basic realm="使用者名稱或者...");
}
*************************************************************

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8933363/viewspace-929679/,如需轉載,請註明出處,否則將追究法律責任。

相關文章