IdP juhend SimpleSAMLphp paigaldamiseks, seadistamiseks ja ühendamiseks TAAT-iga
- Veenduge, et serveriseadistused vastaksid SimpleSAMLphp nõuetele https://simplesamlphp.org/docs/stable/simplesamlphp-install#section_3
- Laadige alla SimpleSAMLphp lehelt http://simplesamlphp.org/download ning pakkige arhiiv lahti oma veebiserverisse.
- Veenduge, et serveri konfiguratsioon (vhost) võimaldaks ligipääsu installatsioonikausta. Kui on kasutusel Suhosin, siis on vaja see seadistada lubama pikemaid GET parameetrite väärtuseid. Debiani puhul failis /etc/php5/apache2/conf.d/suhosin.ini
suhosin.get.max_value_length = 2048
- Navigeerige installatsioonikausta ja kopeerige kaustast config-templates/ failid config.php ja authsources.php kausta config/ ning metadata-templates/ kaustast fail saml20-idp-hosted.php kausta metadata/ :
cp config-templates/config.php config-templates/authsources.php config
cp metadata-templates/saml20-idp-hosted.php metadata
- Muutke failis config/config.php järgmised read:
- juurkataloogi puhul tuleb installatsioonikaustaks määrata
'/'
‘baseurlpath’ => ‘minuinstallatsioonikaust/’,
- lülitage sisse IdP funktsionaalsus
‘enable.saml20-idp’ => ‘true’,
- sümbolijada genereerimiseks võib kasutada SimpleSAMLphp koodi kommentaarides olevat juhendit või sisestada see ise
‘secretsalt’ => ‘suvalinesümbolijada’,
- lisage administratiivandmed
‘auth.adminpassword’ => ‘administraatoriparool’,
‘technicalcontact_name’ => ‘tehnilise kontaktisiku nimi’,
‘technicalcontact_email’ => ‘tehnilise kontaktisiku e-postiaadress’, - määrake ajatsoon
‘timezone’ => ‘Europe/Tallinn’,
- juurkataloogi puhul tuleb installatsioonikaustaks määrata
- Leidke samas failis authproc.idp plokk (kõige all), veenduge, et selles oleks rida
100 => array( ‘class’ => ‘core:AttributeMap’, ‘name2urn’),
- Failis config/authsouces.php kommenteerige välja kõik autentimisallikad, mida te ei kasuta ning eemaldage kommentaarid sellelt, mida kasutate (olgu selleks siis SQL andmebaas, LDAP või midagi muud). Testimiseks sobib kõige paremini exampleauth:UserPass.
- Konfigureerige valitud autentimisallikas vastavalt oma autentimissüsteemile, arvestades, et väljastama peate atribuudid, mis on nõutud TAAT Tehnoloogilises profiilis (https://taat.edu.ee/main/dokumendid/).
NB! Kui autentimine toimub ühes süsteemis (nt LDAP) ning vajalikke andmeid võetakse teisest (nt SQL andmebaasist), siis selleks on olemas eraldi atribuutide koguja moodul: https://github.com/NIIF/simplesamlphp-module-attributecollector - Aktiveerige valitud autoriseerimisallika moodul:
touch modules/exampleauth/enable
- Muutke failis metadata/saml20-idp-hosted.php järgmised read:
‘certificate’ => ‘server.crt’,
‘privatekey’ => ‘server.pem’, // sertifikaadiandmed vastavalt enda poolt kasutatud sertifikaatidele
‘auth’ => ‘example-userpass’, // autentimisallikas, mida kasutatelisage järgmised:
‘sign.logout’ => TRUE, // sign logout messages sent from this IdP ‘validate.authnrequest’ => TRUE, // require signatures on authentication requests sent to this IdP
‘validate.logout’ => TRUE, // require signatures on logout messages sent to this IdP
‘redirect.sign’ => TRUE, // sign logout requests and responses sent from this IdP
‘redirect.validate’ => TRUE, // validate logout requests and responses sent to this IdPTAAT-i jaoturitega ühendamine
- Aktiveerige järgnevad moodulid:
- cron
- metarefresh
Croni moodul käivitab etteantud töid perioodiliselt.
Metarefresh moodul laeb alla ja parsib metaandmed ning salvestab need lokaalselt vahemällu.
Esmalt kopeerige config-templates failide seast ülalpool mainitud moodulid globaalsesse config/ kausta.
[root@simplesamlphp] cd /var/simplesamlphp [root@simplesamlphp simplesamlphp] touch modules/cron/enable [root@simplesamlphp simplesamlphp] cp modules/cron/config-templates/*.php config/ [root@simplesamlphp simplesamlphp] touch modules/metarefresh/enable [root@simplesamlphp simplesamlphp] cp modules/metarefresh/config-templates/*.php config/
Metarefresh konfiguratsiooni täiendused
Muutke config/config-metarefresh.php faili vastavalt sellele, kas soovite ühendada test või produktsiooni jaoturi külge:
<?php $config = array( 'sets' => array( // TAAT produktsiooni jaotur identiteedipakkujale 'taat-prod' => array( 'cron' => array('hourly'), 'sources' => array( array( 'src' => 'https://taeva.taat.edu.ee/metadata/metadata.taat+hub+prod+sp.xml', 'validateFingerprint' => 'C5:F4:79:B5:80:8D:90:C2:5A:7D:B0:8D:B4:99:D7:2D:06:7F:DE:E5', 'template' => array( 'tags' => array('taat-prod'), 'validate.authnrequest' => FALSE, 'validate.logout' => FALSE, ), ), ), 'expireAfter' => 60*60*24*4, // Maximum 4 days cache time. 'outputDir' => 'metadata/taat-prod/', 'outputFormat' => 'flatfile', ), // TAAT test jaotur identiteedipakkujale 'taat-test' => array( 'cron' => array('hourly'), 'sources' => array( array( 'src' => 'https://taeva.taat.edu.ee/metadata/metadata.taat+hub+test+sp.xml', 'validateFingerprint' => 'C5:F4:79:B5:80:8D:90:C2:5A:7D:B0:8D:B4:99:D7:2D:06:7F:DE:E5', 'template' => array( 'tags' => array('taat-test'), 'validate.authnrequest' => FALSE, 'validate.logout' => FALSE, ), ), ), 'expireAfter' => 60*60*24*4, // Maximum 4 days cache time. 'outputDir' => 'metadata/taat-test/', 'outputFormat' => 'flatfile', ), ), );
- Tehke TAAT-i hubi metadata jaoks eraldi kaust ning andke veebiserverile sinna kirjutamisõigus:
mkdir -p metadata/taat-prod chmod go+rw metadata/taat-prod/ mkdir -p metadata/taat-test chmod go+rw metadata/taat-test/
- Lisage config/config.php faili jaoturi metadata asukoht:
# ... rest of the file # # Find 'metadata.sources' section and make it to reflect: 'metadata.sources' => array( array('type' => 'flatfile', 'directory' => 'metadata'), array('type' => 'flatfile', 'directory' => 'metadata/taat-prod'), array('type' => 'flatfile', 'directory' => 'metadata/taat-test'), ), # ... rest of the file
- Kindlasti on vaja seada croni jaoks parool (märgitud failides RANDOM_KEY-iga), sest muidu saab igaüks tulla ja taske käivitada.
<?php /* * Configuration for the Cron module. * * $Id: $ */ $config = array ( 'key' => 'RANDOM_KEY', 'allowed_tags' => array('daily', 'hourly', 'frequent'), 'debug_message' => false, 'sendemail' => false, ); ?>
- Lisage croni töö:
Näiteks simplesamlphp_cron fail:# Run SimpleSAMLphp Hourly tasks at every second minute of an hour 2 * * * * apache curl --silent "https://SERVER/simplesaml/module.php/cron/cron.php?key=RANDOM_KEY&tag=hourly" > /dev/null 2>&1
NB! Juhul kui uuendasite SSP eelmist seadistust metarefreshi peale, siis on vajalik kustutada vanas juhendis (punktis 10) loodud metadata/saml20-sp-remote.php failis reos.taat.edu.ee ja/või sarvik.taat.edu.ee metaandmed.
JANUS (uue ühenduse loomiseks)
- Tehke kasutaja JANUSesse aadressil https://taeva.taat.edu.ee/module.php/janus/index.php
- Lisage JANUSesse uus ühendus („Create connection“), kus ID on „entity id“, mis on leitav teie oma SimpleSAMLphp installatsioonilehel menüüst „Federation“ ning ühenduse tüübiks on „SAML 2.0 IdP“. XML-i ei ole vaja kopeerida.
- Valige loodud ühendus ja minge lehele „Import metadata“. Kopeerige oma metaandmete XML või link, mille leiate oma SimpleSAMLphp installatsioonilehet „Federation“ vahelehelt „show metadata“ klõpsates.
- Vahelehel „Metadata“ lisage metaandmed, mis on nõutud TAAT Tehnoloogilises profiilis (https://taat.edu.ee/main/dokumendid/).
- Testige sisselogimist TAAT testlehel https://eitja.taat.edu.ee/
NB! Jaoturite andmeid uuendatakse kord 5 min jooksul. Kui teie ühendus kohe ei toimi, oodake 5 minutit ja proovige uuesti.