Lihtne PHP rakendus SimpleSAMLphp autentimisega

Allikas: Eesti Hariduse ja Teaduse Andmesidevõrk

Siin lehel kirjeldatakse SimpleSAMLphp autentimise lisamist lihtsale PHP rakendusele. Juhendit on kasutatud TAAT testteenuse loomisel.

SimpleSAMLphp klasside registreerimine

Kõik vajaminevad klassid saab sisse laadida SimpleSAMLphp autoloaderiga:

require_once('../../lib/_autoload.php');

Kindlasti ärge unustage määramast oma installatsioonikausta.

Autentimisallikas

Seda, millist autentimisallikat SimpleSAMLphp kasutab, määratakse järgnevalt:

$auth = new SimpleSAML_Auth_Simple('default-sp');

Kusjuures default-sp asemel tuleks määrata nimi, mis on defineeritud authsources.php-s.

Autentimine

Autentimise väljakutsumiseks kasutatakse järgnevat funktsiooni, mis tuleb lisada kõikidele lehtedele, mille nägemiseks peab kasutaja olema autentitud.

$auth->requireAuth(); 

Kuna aga TAATis toimub suhtlus IdP-dega üle jaoturite, suunab see link kõigepealt jaoturi, mitte IdP valiku juurde. Selle vältimiseks tuleks kasutada funktsioonil lisaatribuuti:

$auth->requireAuth(array('saml:idp' => 'entity_id',));

Entity_id on jaoturi oma, millega parasjagu ühendutakse. Testjaoturi puhul on selleks https://reos.taat.edu.ee/saml2/idp/metadata.php

Atribuudid

Vastu võetud atribuutide kätte saamiseks kasutatakse järgnevat funktsiooni:

$attributes = $auth->getAttributes();

Üksikute atribuutide (nt display name) kätte saamine: $name = $attrs['displayName'][0];

Välja logimine

$auth->logout('url');

Url tähistab linki, millele suunatakse välja loginud kasutaja. Kuna väljalogimine realiseeritakse jaoturis, tuleks kasutada täispikka url-i (http://...)