SimpleSAMLphp automatinis metaduomenų atnaujinimas (IdP + SP)
Automatinis metaduomenų valdymas
Jei paslauga arba tapatybės tiekėjas yra prijungtas prie federacijos, reikia sukonfigūruoti automatinį federacijos metaduomenų parsisiuntimą, tam, kad paslauga žinotų apie egsistuojančius tapatybės tiekėjus, kuriais gali pasinaudoti vartotojas. Taip pat, tapatybės tiekėjas turi žinoti apie paslaugas, kurios gali kreiptis gauti vartotojo tapatybę.
Metarefresh metaduomenų atnaujinimo modulis
Pirmiausia įjungiama metarefresh metaduomenų atnaujinimo modulį:
cd /var/www/simplesamlphp/modules/metarefresh mv default-disable default-enable cp config-templates/config-metarefresh.php /var/www/simplesamlphp/config
Nurodome modulio konfigūraciją config/config-metarefresh.php:
<?php $config = array( 'sets' => array( 'litnet' => array( 'cron' => array('hourly'), 'sources' => array( array( 'src' => 'https://fedi.litnet.lt/md/metadata.litnet.xml', 'validateFingerprint' => '96:6F:09:B4:68:7B:15:B2:A2:16:5E:36:7C:01:ED:F3:17:75:15:CE', 'template' => array( 'tags' => array('litnet'), 'authproc' => array( 21 => array('class' => 'core:AttributeMap', 'name2oid'), 51 => array('class' => 'core:AttributeMap', 'oid2name'), ), ), ), ), 'expireAfter' => 60*60*24*4, // Maximum 4 days cache time. 'outputDir' => 'metadata/litnet-import/', 'outputFormat' => 'flatfile', /* Nebūtina */ // 'types' => array('saml20-idp-remote', 'shib13-idp-remote'), # Paslaugos teikėjo atveju // 'types' => array('saml20-sp-remote', 'shib13-sp-remote'), # Tapatybės tiekėjo atveju ) ) );
- src - nurodo metaduomenų šaltinį,
- validateFingerprint - sertifikato, kuriuo buvo pasirašyti metaduomenį validumo patikrinimui
- outputDir - katalogas, kuriame bus patalpinti metaduomenys
- types - esybių, kurių metaduomenys turėtų būti saugomi tipai (tapatybės teikėjui - paslaugos, paslaugos tiekėjui - tapatybės tiekėjai)
Sukuriame katalogą metaduomenims talpinti ir įsitikiname, kad vartotojas, kurio teisėmis dirba WWW serveris turi teisę rašyti į šį katalogą:
cd /var/www/simplesamlphp/metadata mkdir litnet-import chgrp -R www-data litnet-import chmod g+w -R litnet-import
config/config.php faile nurodome naudoti naujai sukurtą katalogą, kaip metaduomenų šaltinį:
'metadata.sources' => array( array('type' => 'flatfile'), array('type' => 'flatfile', 'directory' => 'metadata/litnet-import'), ),
Atlikus šiuos žingsnius galime patikrinti, ar metaduomenų atsisiuntimas veikia, SimpleSAMLphp administravimo panelėje: Federacija -> Metarefresh: fetch metadata. Jei viskas atlikta teisingai, turėtu būti matomas dialogos langas su pranešimais apie parsiųstus/išsaugotus metaduomenų failus.
CRON modulio konfigūravimas
Tam, kad metaduomenys būtų automatiškai parsiunčiami nurodytais laiko intervalais, reikia sukonfigūruoti CRON užduotis.
Pirmiausia įjungiame SimpleSAMLphp cron modulį:
cd /var/www/simplesamlphp/modules/cron mv default-disable default-enable cp config-templates/module_cron.php /var/www/simplesamlphp/config
Taip pat įdiegiame cURL biblioteką:
apt-get install curl
Atliekame pakeitimus modulio konfigūracijoje config/module_cron.php:
<?php $config = array ( 'key' => 'RANDOM_KEY', //Sugeneruojame random stringą 'allowed_tags' => array('daily', 'hourly', 'frequent'), 'debug_message' => TRUE, 'sendemail' => FALSE, );
Pridedame linux cron užduotis:
cd /etc/cron.d/ vi nobody # Run cron [daily] 02 0 * * * curl --silent "https://<domain>/simplesaml/module.php/cron/cron.php?key=RANDOM_KEY&tag=daily" > /dev/null 2>&1 # Run cron [hourly] 01 * * * * curl --silent "https://<domain>/simplesaml/module.php/cron/cron.php?key=RANDOM_KEY&tag=hourly" > /dev/null 2>&1
Daugiau informacijos
https://simplesamlphp.org/docs/stable/simplesamlphp-automated_metadata