Wiki source code of CAS PHP klient

Version 2.1 by Petr Abrahamczik on 08.02.2019 09:24

Show last authors
1 V ukázkovém příkladu je popsán základní způsob konfigurace webové aplikace v PHP pomocí [[phpCAS>>https://github.com/apereo/phpCAS]]. Aplikace je schopna získat přihlášeného uživatele pomocí CAS v3 protokolu.
2
3 1. Do aplikace je potřeba přidat knihovny klienta. Pokud využíváme ##composer## lze to provést pomocí příkazu ##composer require jasig/phpcas## a nebo je možné knihovnu stáhnout a přidat ručně.
4 1. Stáhnout [[certifikát>>https://pki.cesnet.cz/certs/chain_TERENA_SSL_High_Assurance_CA_3.pem]] certifikáční autority CAS serveru ze stránky https://pki.cesnet.cz/cs/ch-tcs-ev-ssl-ca-3-crt-crl.html
5 1. 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. (((
6 {{code language="html"}}
7 <?php
8
9 // pri pouziti composer
10 require_once './vendor/autoload.php';
11
12 // initialize phpCAS
13 phpCAS::client(CAS_VERSION_3_0,'www.sso.vsb.cz',443,'');
14
15 // Nastavení certifikátu (nebo certifikační autority) serveru CAS
16 phpCAS::setCasServerCACert('chain_TERENA_SSL_High_Assurance_CA_3.pem');
17
18 // zapnutí podpory single sign out (omezení pouze na CAS server)
19 phpCAS::handleLogoutRequests(true, array("www.sso.vsb.cz"));
20
21 // provede autentizaci
22 if (isset($_REQUEST['login'])) {
23 phpCAS::forceAuthentication();
24 }
25
26 // odhlaseni
27 if (isset($_REQUEST['logout'])) {
28 // odhlaseni z CAS
29 phpCAS::logout();
30
31 // odhlaseni s presmerovanim zpatky
32 // phpCAS::logoutWithRedirectService('https://klient.vsb.cz');
33 }
34
35 ?>
36
37 <html>
38 <head>
39 <title>php CAS Example</title>
40 </head>
41 <body>
42
43 <p>phpCAS version is <b><?php echo phpCAS::getVersion(); ?></b>.</p>
44
45 <?php
46 // zde je již uživatel autentizován
47 if (phpCAS::isAuthenticated()) {
48 ?>
49
50 <h1>Successfull Authentication!</h1>
51 <p>the user's login is <b><?php echo phpCAS::getUser(); ?></b>.</p>
52 <p><a href="?logout">Log Out</a></p>
53
54 <?php
55 // uzivatel neni autentizovan
56 } else {
57 ?>
58
59 <h1>Unauthenticated!</h1>
60
61 <p><a href="?login">Log In</a></p>
62
63 <?php
64 }
65 ?>
66
67 </body>
68 </html>
69 {{/code}}
70 )))