Autentikáció Shibboleth-tel

A users szerveren lehetőségünk van korlátozni a hozzáférést bizonyos mappákhoz, a látogató ITK-s azonosítója alapján, a Shibboleth segítségével. Ez egy webes beléptető rendszer, ami képes együttműködni az apache webszerverrel is. A hozzáférés szabályozásán felül, megad információkat a belépett felhasználóról.

Azt, hogy az apache kérjen Shibboleth hitelesítést, a .htaccess fájlban tudjuk megadni. Egy ilyen fájlban szereplő utasítások hatásköre arra a mappára, és almappáira vonatkozik, ahol található. Jó ha tudjuk, hogy a fájlnév elején a pont azt jelenti, hogy rejtett fájl.

Jelentkezzünk be a users szerverre ssh-n, majd navigáljunk abba a mappába, ahol a hitelesítést megköveteljük. Hozzuk létre a fájlt a következő utasítással:

touch .htaccess

Ha ez megvan, bele kell írnunk az utasítást. A leírás során én a nano nevű szövegszerkesztőt fogom használni.

nano .htaccess

Majd adjuk hozzá a következő sorokat:

AuthType shibboleth
ShibRequireSession On
Require valid-user

A szerkesztőből kilépni a ctrl+x billentyűkombinációval tudunk. Ekkor megkérdezi hogy szeretnénk-e menteni, nyomjuk le az y billentyűt, majd az entert. Ezzel meg is vagyunk, mostantól bárkinek aki hozzá szeretne férni az adott mappához, megjelenik a beléptető felület, és csak sikeres bejelentkezés után teheti ezt meg.

Ha csak bizonyos felhasználók számára szeretnénk engedélyezni a hozzáférést, módosítsuk a Require sort a következő módon:

Require user itkazonosito@login.ppke.hu

Itt felsorolhatunk több felhasználót is (minden felhasználót külön sorban), ekkor csak azok férhetnek hozzá a mappához, akiket meghatároztunk, mindenki másnak meg lesz tagadva. Ha nem szeretnénk kiírni a tartománynevet, írhatjuk ezt is:

Require user ~ itkazonosito@

Ha csak az volt a célunk hogy az adott mappa hozzáférését korlátozzuk, készen is vagyunk, viszont lehetőségünk van néhány adatot lekérdezni a bejelentkezett felhasználóról. Az alábbi Php kódrészlet jól szemlélteti:

<head>
<meta charset="UTF-8">
</head>
<?php
echo "Név: ".$_SERVER['displayName']."<br>";
echo "E-mail cím: ".$_SERVER['mail']."<br>";
echo "Egyedi zonosító: ".$_SERVER['eppn']."<br>";
echo "Csoportok: ".$_SERVER['affiliation']."<br>";
echo "Tartomány: ".$_SERVER['orgUnitDN']."<br>";
echo "Neptun kód: ".$_SERVER['ppkePersonOrgID']."<br>";
echo "Lokális azonosító: ".$_SERVER['uid']."<br>";
?>

Tudnunk kell, hogy a neptun kód-név páros bizalmas adat, ennek megfelelően kell kezelni.

További dolgokat tudhatunk meg a Shibboleth által átadott adatokról az alábbi linken (élő Shibboleth session esetén): https://users.itk.ppke.hu/Shibboleth.sso/Session

Kategória: ITK hálózat