KNF:SimpleSAMLphp-metadata: verschil tussen versies
Regel 119: | Regel 119: | ||
</syntaxhighlight> |
</syntaxhighlight> |
||
<br/> |
<br/> |
||
+ | '''Voorbeeld van de uitvoer:''' |
||
+ | <syntaxhighlight lang="bash"> |
||
total 32 <br/> |
total 32 <br/> |
||
drwxr-xr-x 2 www-data root 4096 Jan 19 15:07 . <br/> |
drwxr-xr-x 2 www-data root 4096 Jan 19 15:07 . <br/> |
||
drwxr-xr-x 3 root root 4096 Jan 19 08:56 .. <br/> |
drwxr-xr-x 3 root root 4096 Jan 19 08:56 .. <br/> |
||
-rw-r--r-- 1 www-data www-data 10593 Jan 19 15:07 saml20-idp-remote.php <br/> |
-rw-r--r-- 1 www-data www-data 10593 Jan 19 15:07 saml20-idp-remote.php <br/> |
||
− | -rw-r--r-- 1 www-data www-data 11083 Jan 19 15:07 saml20-sp-remote.php |
+ | -rw-r--r-- 1 www-data www-data 11083 Jan 19 15:07 saml20-sp-remote.php |
+ | </syntaxhighlight> |
||
− | |||
De twee PHP bestanden (''saml20-idp-remote.php'' en ''saml20-sp-remote.php'') bevatten de volledige configuratie die nodig is om te koppelen met de Entree Federatie. |
De twee PHP bestanden (''saml20-idp-remote.php'' en ''saml20-sp-remote.php'') bevatten de volledige configuratie die nodig is om te koppelen met de Entree Federatie. |
||
Versie van 20 jan 2016 16:18
Instellen automatisch verversen metadata in SimpleSAMLphp
LET OP: Onderstaande instructies zijn gebaseerd op Debian, hierdoor kunnen de paden die worden gebruikt afwijken van uw configuratie.
- Zorg ervoor dat een verbinding vanaf de SimpleSAMLphp server met aselect.entree.kennisnet.nl op poort 443 mogelijk is.
- Er moeten 2 modules worden aangezet
- cron
- metarefresh
Ga naar de webserver op console of SSH en voer de volgende commando's uit om de modules aan te zetten:
[root@simplesamlphp]# cd /usr/share/simplesamlphp
[root@simplesamlphp]# touch modules/cron/enable
[root@simplesamlphp]# cp modules/cron/config-templates/*.php config/
[root@simplesamlphp]# touch modules/metarefresh/enable
[root@simplesamlphp]# cp modules/metarefresh/config-templates/*.php config/
Vervolgens kan de metarefresh module getest worden:
[root@simplesamlphp]# cd modules/metarefresh/bin
[root@simplesamlphp]# ./metarefresh.php -s https://aselect.entree.kennisnet.nl/openaselect/profiles/saml2/
LET OP: De uitvoer moet een PHP array zijn waarin de metadata XML van de Entree federatie verwerkt is. Als dit niet zo is dan is mogelijk uw firewall toegang naar de authenticatieserver van de Entree Federatie niet goed geconfigureerd. Zorg dat dit goed functioneert voordat u verder gaat met de onderstaande stappen.
Configureer de metarefresh module voor het automatisch verversen van de metadata:
[root@simplesamlphp]# cd /usr/share/simplesamlphp
[root@simplesamlphp]# nano config/config-metarefresh.php
In de config-metarefresh.php moet het volgende staan om het automatisch verversen mogelijk te maken:
<?php
$config = array(
'conditionalGET' => true,
'sets' => array(
'kn' => array(
'cron' => array('hourly'),
'sources' => array(
array(
'src' => 'https://aselect.entree.kennisnet.nl/openaselect/profiles/saml2/',
'template' => array('simplesaml.nameidattribute' => 'uid'),
),
),
'expireAfter' => 60*60*24*4, // Maximum 4 days cache time.
'outputDir' => 'metadata/metadata_knf/',
'outputFormat' => 'flatfile',
),
),
);
Vervolgens moet de volgende mappen structuur worden aangemaakt:
[root@simplesamlphp]# mkdir -p /usr/share/simplesamlphp/metadata/metadata_knf
Nu moet de webserver gebruiker (www-data) rechten gegeven worden:
[root@simplesamlphp]# chown www-data /usr/share/simplesamlphp/metadata/metadata_knf
Pas nu de centrale SimpleSAMLphp configuratie (config.php) aan zodat deze de automatisch opgehaalde metadata gaat gebruiken:
[root@simplesamlphp]# nano /etc/simplesamlphp/config.php
Zoek in het bestand de regel op die start met metadata.sources. Deze moet worden aangepast zodat deze er als volgt uit ziet:
'metadata.sources' => array(
array('type' => 'flatfile'),
array('type' => 'flatfile', 'directory' => 'metadata/metadata_knf'),
),
Nu stellen we de cron module van SimpleSAML in: [root@simplesamlphp]# nano config/module_cron.php
Deze moet er als volgt uit zien:
<?php
$config = array (
'key' => '<TOKEN>',
'allowed_tags' => array('daily', 'hourly', 'frequent'),
'debug_message' => TRUE,
'sendemail' => TRUE,
);
Vul op de plaats van <TOKEN> een lange tekenreeks in. Hiermee wordt voorkomen dat iemand vanaf buiten het cron script, dat in de volgende stap wordt gemaakt, kan aanroepen.
Stel nu de cronjob in:
[root@simplesamlphp]# crontab -e
Deze cronjob moet één keer per uur worden uitgevoerd:
01 * * * * curl --silent "https://<YOUR_SERVER>/saml/module.php/cron/cron.php?key=<TOKEN>&tag=hourly" > /dev/null 2>&1
Vul bij <TOKEN> de eerder ingestelde tekenreeks in; vul bij <YOUR_SERVER> de domeinnaam in van de webserver waarop uw SimpleSAML instantie te bereiken is.
LET OP: Het kan voorkomen dat SimpleSAMLphp niet per se op https://<YOUR_SERVER>/saml/* geïnstalleerd is, maar op een ander pad. Houd in dat geval het eigen pad aan. Dit geldt ook voor de configuratiewijzigingen hieronder.
Om te testen of de cronjob goed functioneert kan hij handmatig worden aangeroepen:
[root@simplesamlphp]# curl 'https://<YOUR_SERVER>/saml/module.php/cron/cron.php?key=<TOKEN>&tag=hourly'
Dit commando geeft geen resultaat als de cronjob werkt en geeft een foutmelding de cronjob niet goed werkt.
Om de uitvoer te bekijken (de metadata van de Entree federatie) gaat u naar:
[root@simplesamlphp]# ls -al /usr/share/simplesamlphp/metadata/metadata_knf/
Voorbeeld van de uitvoer:
total 32 <br/>
drwxr-xr-x 2 www-data root 4096 Jan 19 15:07 . <br/>
drwxr-xr-x 3 root root 4096 Jan 19 08:56 .. <br/>
-rw-r--r-- 1 www-data www-data 10593 Jan 19 15:07 saml20-idp-remote.php <br/>
-rw-r--r-- 1 www-data www-data 11083 Jan 19 15:07 saml20-sp-remote.php
De twee PHP bestanden (saml20-idp-remote.php en saml20-sp-remote.php) bevatten de volledige configuratie die nodig is om te koppelen met de Entree Federatie.
Verwijder vervolgens als alles nog altijd werkt de oude metadata bestanden van de server. Zorg wel dat je deze eerst even backupt op een veilige plaats, voor het geval de koppeling op basis van automatische metadata toch niet werkt.
[root@simplesamlphp]# rm /etc/simplesamlphp/metadata/saml20-idp-remote.php
[root@simplesamlphp]# rm /etc/simplesamlphp/metadata/saml20-sp-remote.php
Controleer hierna of je nog altijd in kan loggen via de Federatie. Lukt het niet, zet dan de oude bestanden weer terug en controleer alle instellingen nogmaals. Lukt het nog niet, neem dan contact op met Kennisnet.