CactiEZ中国語版10.1とCAS単点登録
6088 ワード
環境
CactiEZ中国語版10.1はネット上でダウンロードしたミラーで、344 MBで、このミラーは簡素なCentOS 6.0のバージョンです.
cas phpClientは1.3.3で、詳細な使用説明と最新バージョンのダウンロードはここをクリックすることができます
仮想マシンでインストールされているCactiEZ中国語版10.1ミラー、アドレス:192.168.217.130、NAT方式でアクセス、DHCPで取得したIPアドレス(外部ネットワークにアクセスしたい場合は、システムが持っているゲートウェイを削除することができますが、私がインストールした後のデフォルトゲートウェイは192.168.0.1で、削除してから正常にインターネットに接続できます)
プロセス
1.ダウンロードしたCAS-1.3.3.tgz解凍ファイルの/CASフォルダとCAS.phpを/ver/www/html/目下にコピーします.
2./ver/www/html/目の下にssoLogin.phpを作成します.この名前は勝手に起きてもいいわけではありません.index.phpファイルを直接修正して、元の内部ログイン方法をブロックすることもできます.
コードは次のとおりです.
ブラウザを使用したアクセス
192.168.217.130/ssoLogin.php、奇跡を目撃する時もうすぐ着いて、chromeならば、白いスクリーンで、毛もなくて、IEならまだ正常に500の間違いを提示して、この問題を解決するのにNの長い時間を費やして、原因はとても簡単で、簡素なミラーファイルはphp-domに不足して、php Clientはこのファイルに依存して、最も簡単な方法は直接インストールすることです
システムはネット上でインストールパッケージを検索し、インストールが完了したらhttpサービスを再起動すれば正常になります.
ネットワークがなければ大丈夫、CentOS 6 X 86のミラーを探し、そのミラーをyumのソースとしてインストールし、
2)mount CenotOS光学ドライブ(システムはCentOS 6 X 86)、
3)次にyumデータソースを構成し、/etc/yum.repos.d/ディレクトリの下のファイルを変更する
デフォルトのネットワークアップグレード方法をブロック
変更/etc/yum.repos.d/centOS_Media
$vim/etc/yum.repos.d/CentOS_Media
enableを1に変更
テスト効果
4)php-domをインストール
5)最後にサービスを再起動する
以上が実装全体の考え方であり、プロファイルは実際のパスと少し異なる可能性があります.
CactiEZ中国語版10.1はネット上でダウンロードしたミラーで、344 MBで、このミラーは簡素なCentOS 6.0のバージョンです.
cas phpClientは1.3.3で、詳細な使用説明と最新バージョンのダウンロードはここをクリックすることができます
仮想マシンでインストールされているCactiEZ中国語版10.1ミラー、アドレス:192.168.217.130、NAT方式でアクセス、DHCPで取得したIPアドレス(外部ネットワークにアクセスしたい場合は、システムが持っているゲートウェイを削除することができますが、私がインストールした後のデフォルトゲートウェイは192.168.0.1で、削除してから正常にインターネットに接続できます)
プロセス
1.ダウンロードしたCAS-1.3.3.tgz解凍ファイルの/CASフォルダとCAS.phpを/ver/www/html/目下にコピーします.
2./ver/www/html/目の下にssoLogin.phpを作成します.この名前は勝手に起きてもいいわけではありません.index.phpファイルを直接修正して、元の内部ログイン方法をブロックすることもできます.
コードは次のとおりです.
<?php
/**
* Example for a simple cas 2.0 client
*
* PHP Version 5
*
* @file example_simple.php
* @file ssoLogin.php
* @category Authentication
* @package PhpCAS
* @author Joachim Fritschi <[email protected]>
* @author Adam Franco <[email protected]>
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
* @link https://wiki.jasig.org/display/CASC/phpCAS
*/
// Load the cactiEZ lib
include("./include/global.php");
// Load the CAS lib
require_once 'CAS.php';
// Enable debugging
phpCAS::setDebug();
// Initialize phpCAS
// phpCAS::client(CAS_VERSION_2_0, $cas_host, $cas_port, $cas_context);
phpCAS::client(CAS_VERSION_2_0, "127.0.0.1", 8080, "/cas");
// For production use set the CA certificate that is the issuer of the cert
// on the CAS server and uncomment the line below
// phpCAS::setCasServerCACert($cas_server_ca_cert_path);
// For quick testing you can disable SSL validation of the CAS server.
// THIS SETTING IS NOT RECOMMENDED FOR PRODUCTION.
// VALIDATING THE CAS SERVER IS CRUCIAL TO THE SECURITY OF THE CAS PROTOCOL!
phpCAS::setNoCasServerValidation();
// force CAS authentication
phpCAS::forceAuthentication();
// at this step, the user has been authenticated by the CAS server
// and the user's login name can be read with phpCAS::getUser().
// logout if desired
if (isset($_REQUEST['logout'])) {
phpCAS::logout();
}
// casLogin
//-------------------------------------start-------------------------------------
$casUser = phpCAS::getUser();
$username = $casUser;
$user = db_fetch_row("SELECT * FROM user_auth WHERE username = '" . $username . "'");
/* Process the user */
if (sizeof($user) > 0) {
cacti_log("LOGIN: User '" . $user["username"] . "' Authenticated", false, "AUTH");
db_execute("INSERT INTO user_log (username,user_id,result,ip,time) VALUES ('" . $username ."'," . $user["id"] . ",1,'" . $_SERVER["REMOTE_ADDR"] . "',NOW())");
/* is user enabled */
$user_enabled = $user["enabled"];
if ($user_enabled != "on") {
/* Display error */
auth_display_custom_error_message(" , .");
exit;
}
/* set the php session */
$_SESSION["sess_user_id"] = $user["id"];
/* handle "force change password" */
if (($user["must_change_password"] == "on") && (read_config_option("auth_method") == 1)) {
$_SESSION["sess_change_password"] = true;
}
/* ok, at the point the user has been sucessfully authenticated; so we must
decide what to do next */
$referer = $_REQUEST['logout'];
if(!$referer){
$referer = 'index.php';
}
header("Location: $referer");
exit;
}else{
/* No guest account defined */
auth_display_custom_error_message(" , CactiEZ .");
cacti_log("LOGIN: Access Denied, No guest enabled or template user to copy", false, "AUTH");
exit;
}
//-------------------------------------end-------------------------------------
// for this test, simply print that the authentication was successfull
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> CactiEZ | </title>
</head>
<body>
<h1> !</h1>
<p>the user's login is <b><?php echo $casUser; ?></b>.</p>
<p>CAS <b><?php echo $casUser; ?></b>.</p>
<p>phpCAS version is <b><?php echo phpCAS::getVersion(); ?></b>.</p>
<p>phpCAS <b><?php echo phpCAS::getVersion(); ?></b>.</p>
<p><a href="index.php"> </a></p>
<p><a href="?logout="> </a></p>
<table align="center">
<?php
if ($user_enabled == "0") {?>
<tr style="height:10px;"><td></td></tr>
<tr>
<td colspan="2"><font color="#FF0000"><strong> </strong></font></td>
</tr>
<?php } ?>
</body>
</html>
ブラウザを使用したアクセス
192.168.217.130/ssoLogin.php、奇跡を目撃する時もうすぐ着いて、chromeならば、白いスクリーンで、毛もなくて、IEならまだ正常に500の間違いを提示して、この問題を解決するのにNの長い時間を費やして、原因はとても簡単で、簡素なミラーファイルはphp-domに不足して、php Clientはこのファイルに依存して、最も簡単な方法は直接インストールすることです
#yum install php-dom
システムはネット上でインストールパッケージを検索し、インストールが完了したらhttpサービスを再起動すれば正常になります.
ネットワークがなければ大丈夫、CentOS 6 X 86のミラーを探し、そのミラーをyumのソースとしてインストールし、
2)mount CenotOS光学ドライブ(システムはCentOS 6 X 86)、
$mount /dev/cdrom /media/cdrom/
3)次にyumデータソースを構成し、/etc/yum.repos.d/ディレクトリの下のファイルを変更する
$cp /etc/yum.repos.d/CentOS_Base /etc/yum.repos.d/CentOS_Base.bak
デフォルトのネットワークアップグレード方法をブロック
変更/etc/yum.repos.d/centOS_Media
$vim/etc/yum.repos.d/CentOS_Media
$vim /etc/yum.repos.d/CentOS_Media
enableを1に変更
テスト効果
$yum list
4)php-domをインストール
yum -y install php-dom
5)最後にサービスを再起動する
$service httpd restart
以上が実装全体の考え方であり、プロファイルは実際のパスと少し異なる可能性があります.