CAS PHP klient
Naposledy změněno Petr Abrahamczik 16.04.2024 10:11
V ukázkovém příkladu je popsán základní způsob konfigurace webové aplikace v PHP pomocí phpCAS. Aplikace je schopna získat přihlášeného uživatele pomocí CAS v3 protokolu.
- Do aplikace je potřeba přidat knihovny klienta. Pokud využíváme composer lze to provést pomocí příkazu composer require apereo/phpcas a nebo je možné knihovnu stáhnout a přidat ručně.
- Stáhnout certifikát certifikáční autority CAS serveru ze stránky https://pki.cesnet.cz/cs/ch-tcs-crt-crl.html
- Příklad aplikace. Adresu https://klient.vsb.cz je potřeba nahradit adresou aplikace a certifikát je potřeba mít ve stejném adresáři jako tento soubor.<?php
// pri pouziti composer
require_once './vendor/autoload.php';
// initialize phpCAS
phpCAS::client(CAS_VERSION_3_0,'www.sso.vsb.cz',443,'','https://klient.vsb.cz');
// Nastaveni certifikatu (nebo certifikacni autority) serveru CAS
phpCAS::setCasServerCACert('chain_geant_ov_rsa_ca_4_full.pem');
// zapnuti podpory single sign out (omezeni pouze na CAS server)
phpCAS::handleLogoutRequests(true, array("www.sso.vsb.cz"));
// provede autentizaci
if (isset($_REQUEST['login'])) {
phpCAS::forceAuthentication();
}
// odhlaseni
if (isset($_REQUEST['logout'])) {
phpCAS::logout();
// odhlaseni s presmerovanim zpatky
// phpCAS::logoutWithRedirectService('https://klient.vsb.cz');
}
?>
<html>
<head>
<title>php CAS Example</title>
</head>
<body>
<p>phpCAS version is <b><?php echo phpCAS::getVersion(); ?></b>.</p>
<?php
// zde je jiz uzivatel autentizovan
if (phpCAS::isAuthenticated()) {
?>
<h1>Successfull Authentication!</h1>
<p>the user's login is <b><?php echo phpCAS::getUser(); ?></b>.</p>
<h2>User Attributes</h2>
<ul>
<?php
foreach (phpCAS::getAttributes() as $key => $value) {
if (is_array($value)) {
echo '<li>', $key, ':<ol>';
foreach ($value as $item) {
echo '<li><strong>', $item, '</strong></li>';
}
echo '</ol></li>';
} else {
echo '<li>', $key, ': <strong>', $value, '</strong></li>' . PHP_EOL;
}
}
?>
<p><a href="?logout">Log Out</a></p>
<?php
// uzivatel neni autentizovan
} else {
?>
<h1>Unauthenticated!</h1>
<p><a href="?login">Log In</a></p>
<?php
}
?>
</body>
</html>