Wiki source code of CAS PHP klient

Last modified by Petr Abrahamczik on 16.04.2024 10:11

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 apereo/phpcas## a nebo je možné knihovnu stáhnout a přidat ručně.
4 1. Stáhnout [[certifikát>>https://pki.cesnet.cz/_media/certs/chain_geant_ov_rsa_ca_4_full.pem]] certifikáční autority CAS serveru ze stránky https://pki.cesnet.cz/cs/ch-tcs-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="php"}}
7 <?php
8 // pri pouziti composer
9 require_once './vendor/autoload.php';
10
11 // initialize phpCAS
12 phpCAS::client(CAS_VERSION_3_0,'www.sso.vsb.cz',443,'','https://klient.vsb.cz');
13
14 // Nastaveni certifikatu (nebo certifikacni autority) serveru CAS
15 phpCAS::setCasServerCACert('chain_geant_ov_rsa_ca_4_full.pem');
16
17 // zapnuti podpory single sign out (omezeni pouze na CAS server)
18 phpCAS::handleLogoutRequests(true, array("www.sso.vsb.cz"));
19
20 // provede autentizaci
21 if (isset($_REQUEST['login'])) {
22 phpCAS::forceAuthentication();
23 }
24
25 // odhlaseni
26 if (isset($_REQUEST['logout'])) {
27 phpCAS::logout();
28
29 // odhlaseni s presmerovanim zpatky
30 // phpCAS::logoutWithRedirectService('https://klient.vsb.cz');
31 }
32
33 ?>
34
35 <html>
36 <head>
37 <title>php CAS Example</title>
38 </head>
39 <body>
40
41 <p>phpCAS version is <b><?php echo phpCAS::getVersion(); ?></b>.</p>
42
43 <?php
44 // zde je jiz uzivatel autentizovan
45 if (phpCAS::isAuthenticated()) {
46 ?>
47
48 <h1>Successfull Authentication!</h1>
49 <p>the user's login is <b><?php echo phpCAS::getUser(); ?></b>.</p>
50
51 <h2>User Attributes</h2>
52 <ul>
53
54 <?php
55 foreach (phpCAS::getAttributes() as $key => $value) {
56 if (is_array($value)) {
57 echo '<li>', $key, ':<ol>';
58 foreach ($value as $item) {
59 echo '<li><strong>', $item, '</strong></li>';
60 }
61 echo '</ol></li>';
62 } else {
63 echo '<li>', $key, ': <strong>', $value, '</strong></li>' . PHP_EOL;
64 }
65 }
66 ?>
67
68 <p><a href="?logout">Log Out</a></p>
69
70 <?php
71 // uzivatel neni autentizovan
72 } else {
73 ?>
74
75 <h1>Unauthenticated!</h1>
76
77 <p><a href="?login">Log In</a></p>
78
79 <?php
80 }
81 ?>
82
83 </body>
84 </html>
85 {{/code}}
86 )))