SimpleSAMLphp automatinis metaduomenų atnaujinimas (IdP + SP)

Iš LITNET WIKI.
Peršokti į: navigacija, paiešką

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