Installation d'un service provider shibboleth2 sous debian
le module shibboleth pour apache fait partie des depos debian par defaut
root@kohadev:/etc/apt# apt-cache search shibboleth libapache2-mod-shib2 - Federated web single sign-on system (Apache module) libshibsp-dev - Federated web single sign-on system (development) libshibsp-doc - Federated web single sign-on system (API docs) libshibsp4 - Federated web single sign-on system (runtime) shibboleth-sp2-schemas - Federated web single sign-on system (schemas) sympa - Modern mailing list manager
installation
root@kohadev:/etc/apt# aptitude install libapache2-mod-shib2 Les NOUVEAUX paquets suivants vont être installés : libapache2-mod-shib2 libcurl3{a} liblog4cpp5{a} libsaml6{a} libshibsp4{a} libssh2-1{a} libxerces-c3.1{a} libxml-security-c15{a} libxmltooling4{a} odbcinst{a} odbcinst1debian2{a} opensaml2-schemas{a} shibboleth-sp2-schemas{a} unixodbc{a} xmltooling-schemas{a} 0 paquets mis à jour, 15 nouvellement installés, 0 à enlever et 109 non mis à jour. Il est nécessaire de télécharger 5 733 ko d'archives. Après dépaquetage, 25,2 Mo seront utilisés. Voulez-vous continuer ? [Y/n/?] y Prendre : 1 http://debian.enst.fr/debian/ squeeze/main libssh2-1 amd64 1.2.6-1 [80,9 kB] Prendre : 2 http://debian.enst.fr/debian/ squeeze/main libcurl3 amd64 7.21.0-2.1+squeeze2 [285 kB] Prendre : 3 http://debian.enst.fr/debian/ squeeze/main liblog4cpp5 amd64 1.0-4 [129 kB] Prendre : 4 http://debian.enst.fr/debian/ squeeze/main libxerces-c3.1 amd64 3.1.1-1+b1 [1 156 kB] Prendre : 5 http://debian.enst.fr/debian/ squeeze/main odbcinst1debian2 amd64 2.2.14p2-1 [78,4 kB] Prendre : 6 http://debian.enst.fr/debian/ squeeze/main odbcinst amd64 2.2.14p2-1 [39,0 kB] Prendre : 7 http://debian.enst.fr/debian/ squeeze/main unixodbc amd64 2.2.14p2-1 [266 kB] Prendre : 8 http://debian.enst.fr/debian/ squeeze/main libxml-security-c15 amd64 1.5.1-3+squeeze1 [354 kB] Prendre : 9 http://debian.enst.fr/debian/ squeeze/main libxmltooling4 amd64 1.3.3-2 [789 kB] Prendre : 10 http://debian.enst.fr/debian/ squeeze/main libsaml6 amd64 2.3-2+squeeze1 [1 287 kB] Prendre : 11 http://debian.enst.fr/debian/ squeeze/main opensaml2-schemas all 2.3-2+squeeze1 [28,3 kB] Prendre : 12 http://debian.enst.fr/debian/ squeeze/main shibboleth-sp2-schemas all 2.3.1+dfsg-5 [19,0 kB] Prendre : 13 http://debian.enst.fr/debian/ squeeze/main xmltooling-schemas all 1.3.3-2 [13,0 kB] Prendre : 14 http://debian.enst.fr/debian/ squeeze/main libshibsp4 amd64 2.3.1+dfsg-5 [973 kB] Prendre : 15 http://debian.enst.fr/debian/ squeeze/main libapache2-mod-shib2 amd64 2.3.1+dfsg-5 [235 kB] 5 733 ko téléchargés en 3s (1 665 ko/s) Sélection du paquet libssh2-1 précédemment désélectionné. (Lecture de la base de données... 59164 fichiers et répertoires déjà installés.) Dépaquetage de libssh2-1 (à partir de .../libssh2-1_1.2.6-1_amd64.deb) ... Sélection du paquet libcurl3 précédemment désélectionné. Dépaquetage de libcurl3 (à partir de .../libcurl3_7.21.0-2.1+squeeze2_amd64.deb) ... Sélection du paquet liblog4cpp5 précédemment désélectionné. Dépaquetage de liblog4cpp5 (à partir de .../liblog4cpp5_1.0-4_amd64.deb) ... Sélection du paquet libxerces-c3.1 précédemment désélectionné. Dépaquetage de libxerces-c3.1 (à partir de .../libxerces-c3.1_3.1.1-1+b1_amd64.deb) ... Sélection du paquet odbcinst1debian2 précédemment désélectionné. Dépaquetage de odbcinst1debian2 (à partir de .../odbcinst1debian2_2.2.14p2-1_amd64.deb) ... Sélection du paquet odbcinst précédemment désélectionné. Dépaquetage de odbcinst (à partir de .../odbcinst_2.2.14p2-1_amd64.deb) ... Sélection du paquet unixodbc précédemment désélectionné. Dépaquetage de unixodbc (à partir de .../unixodbc_2.2.14p2-1_amd64.deb) ... Sélection du paquet libxml-security-c15 précédemment désélectionné. Dépaquetage de libxml-security-c15 (à partir de .../libxml-security-c15_1.5.1-3+squeeze1_amd64.deb) ... Sélection du paquet libxmltooling4 précédemment désélectionné. Dépaquetage de libxmltooling4 (à partir de .../libxmltooling4_1.3.3-2_amd64.deb) ... Sélection du paquet libsaml6 précédemment désélectionné. Dépaquetage de libsaml6 (à partir de .../libsaml6_2.3-2+squeeze1_amd64.deb) ... Sélection du paquet opensaml2-schemas précédemment désélectionné. Dépaquetage de opensaml2-schemas (à partir de .../opensaml2-schemas_2.3-2+squeeze1_all.deb) ... Sélection du paquet shibboleth-sp2-schemas précédemment désélectionné. Dépaquetage de shibboleth-sp2-schemas (à partir de .../shibboleth-sp2-schemas_2.3.1+dfsg-5_all.deb) ... Sélection du paquet xmltooling-schemas précédemment désélectionné. Dépaquetage de xmltooling-schemas (à partir de .../xmltooling-schemas_1.3.3-2_all.deb) ... Sélection du paquet libshibsp4 précédemment désélectionné. Dépaquetage de libshibsp4 (à partir de .../libshibsp4_2.3.1+dfsg-5_amd64.deb) ... Sélection du paquet libapache2-mod-shib2 précédemment désélectionné. Dépaquetage de libapache2-mod-shib2 (à partir de .../libapache2-mod-shib2_2.3.1+dfsg-5_amd64.deb) ... Traitement des actions différées (« triggers ») pour « man-db »... Paramétrage de libssh2-1 (1.2.6-1) ... Paramétrage de libcurl3 (7.21.0-2.1+squeeze2) ... Paramétrage de liblog4cpp5 (1.0-4) ... Paramétrage de libxerces-c3.1 (3.1.1-1+b1) ... Paramétrage de libxml-security-c15 (1.5.1-3+squeeze1) ... Paramétrage de libxmltooling4 (1.3.3-2) ... Paramétrage de libsaml6 (2.3-2+squeeze1) ... Paramétrage de opensaml2-schemas (2.3-2+squeeze1) ... Paramétrage de shibboleth-sp2-schemas (2.3.1+dfsg-5) ... Paramétrage de xmltooling-schemas (1.3.3-2) ... Paramétrage de libshibsp4 (2.3.1+dfsg-5) ... Paramétrage de odbcinst (2.2.14p2-1) ... Paramétrage de odbcinst1debian2 (2.2.14p2-1) ... Paramétrage de unixodbc (2.2.14p2-1) ... Paramétrage de libapache2-mod-shib2 (2.3.1+dfsg-5) ... Adding system-user for Shibboleth daemon Starting Shibboleth 2 daemon: shibd.
pour disposer d'un SP 2.4.x sur debian squeeze il faut un backport
references
root@kohadev:/etc# apt-get -t squeeze-backports install libapache2-mod-shib2 root@kohadev:~# dpkg --list | grep shib ii libapache2-mod-shib2 2.4.3+dfsg-2~bpo60+1 Federated web single sign-on system (Apache module) ii libshibsp4 2.3.1+dfsg-5 Federated web single sign-on system (runtime) ii libshibsp5 2.4.3+dfsg-2~bpo60+1 Federated web single sign-on system (runtime) ii shibboleth-sp2-schemas 2.4.3+dfsg-2~bpo60+1 Federated web single sign-on system (schemas)
il semble que par defaut le certificat du SP ne soit pas généré⇒ sefsigned manuel:
root@kohadev:/etc/shibboleth# /usr/sbin/shib-keygen -h kohadev.it-sudparis.eu -y 10 -e https://kohadev.it-sudparis.eu/shibboleth Generating a 2048 bit RSA private key ...........................+++ ...........................+++ writing new private key to 'sp-key.pem' ----- root@kohadev:/etc/shibboleth# ls -ltra sp-* -rw-r----- 1 root _shibd 1675 23 août 14:50 sp-key.pem -rw-r--r-- 1 root root 1172 23 août 14:50 sp-cert.pem
root@kohadev:/etc/shibboleth# /etc/init.d/shibd start ; tail -f /var/log/shibboleth/shibd.log Starting Shibboleth 2 daemon: shibd. 2012-08-23 14:51:41 INFO Shibboleth.AttributeExtractor.XML : creating mapping for Attribute urn:oid:1.3.6.1.4.1.5923.1.1.1.10 2012-08-23 14:51:41 INFO Shibboleth.AttributeExtractor.XML : creating mapping for Attribute urn:oasis:names:tc:SAML:2.0:nameid-format:persistent 2012-08-23 14:51:41 INFO Shibboleth.Application : building AttributeFilter of type XML... 2012-08-23 14:51:41 INFO Shibboleth.AttributeFilter : loaded XML resource (/etc/shibboleth/attribute-policy.xml) 2012-08-23 14:51:41 INFO Shibboleth.Application : building AttributeResolver of type Query... 2012-08-23 14:51:41 INFO Shibboleth.Application : building CredentialResolver of type File... 2012-08-23 14:51:41 INFO XMLTooling.SecurityHelper : loading private key from file (/etc/shibboleth/sp-key.pem) 2012-08-23 14:51:41 INFO XMLTooling.SecurityHelper : loading certificate(s) from file (/etc/shibboleth/sp-cert.pem) 2012-08-23 14:51:41 INFO Shibboleth.Listener : registered remoted message endpoint (default::getHeaders::Application) 2012-08-23 14:51:41 INFO Shibboleth.Listener : listener service starting
root@kohadev:/etc/apache2/mods-available# cat shib2.conf # Global Configuration # This is the XML file that contains all the global, non-apache-specific # configuration. Look at this file for most of your configuration parameters. ShibConfig /etc/shibboleth/shibboleth2.xml # Used for example logo and style sheet in error templates. <IfModule mod_alias.c> <Location /shibboleth-sp> Allow from all </Location> Alias /shibboleth-sp/main.css /usr/share/shibboleth/main.css Alias /shibboleth-sp/logo.jpg /usr/share/shibboleth/logo.jpg </IfModule>
root@kohadev:/etc/apache2# vim envvars root@kohadev:/etc/apache2# a2enmod shib2 Enabling module shib2. Run '/etc/init.d/apache2 restart' to activate new configuration! root@kohadev:/etc/apache2/mods-enabled# /etc/init.d/apache2 stop Stopping web server: apache2 ... waiting . root@kohadev:/etc/shibboleth# apache2ctl configtest Syntax OK root@kohadev:/etc/apache2/mods-enabled# /etc/init.d/apache2 start ; tail -f /var/log/apache2/error.log [Thu Aug 23 15:05:57 2012] [notice] caught SIGTERM, shutting down [Thu Aug 23 15:06:04 2012] [notice] Apache/2.2.16 (Debian) configured -- resuming normal operations
root@kohadev:/etc/shibboleth# /usr/sbin/shibd -t overall configuration is loadable, check console for non-fatal problems
Par defaut la configuration apache n'etait pas operationnele sur cette machine, de plus on la signe avec notre certificat TCS
recuperation des certificats TCS
[root@shibds certs]# scp chain-1075-wildcard.it-sudparis.eu.pem cert-1075-wildcard.it-sudparis.eu.pem cachain-TERENA_UTN-USERFirst-Hardware_AddTrust.pem add_trust_external_ca_root.pem root@kohadev.it-sudparis.eu root@kohadev.it-sudparis.eu:/etc/ssl/certs/
root@kohadev:/etc/apache2/sites-available# a2enmod ssl Enabling module ssl. See /usr/share/doc/apache2.2-common/README.Debian.gz on how to configure SSL and create self-signed certificates. Run '/etc/init.d/apache2 restart' to activate new configuration! root@kohadev:/etc/apache2/sites-available# ls -ltra ../mods-enabled/ | grep ssl lrwxrwxrwx 1 root root 26 23 août 15:32 ssl.load -> ../mods-available/ssl.load lrwxrwxrwx 1 root root 26 23 août 15:32 ssl.conf -> ../mods-available/ssl.conf root@kohadev:/etc/apache2/sites-available# a2ensite default-ssl Enabling site default-ssl. Run '/etc/init.d/apache2 reload' to activate new configuration! root@kohadev:/etc/apache2/sites-available# ls -ltra ../sites-enabled/ | grep ssl lrwxrwxrwx 1 root root 30 23 août 15:38 default-ssl -> ../sites-available/default-ssl
root@kohadev:/etc/apache2/sites-available# /etc/init.d/apache2 restart root@kohadev:/etc/apache2/sites-available# lsof -i tcp | grep https apache2 9908 root 6u IPv6 157682 0t0 TCP *:https (LISTEN) apache2 9916 www-data 6u IPv6 157682 0t0 TCP *:https (LISTEN) apache2 9917 www-data 6u IPv6 157682 0t0 TCP *:https (LISTEN)
# /usr/sbin/shib-keygen -h cat-med.int.fr -f rm: impossible de supprimer '/etc/shibboleth/sp-key.pem': Aucun fichier ou dossier de ce type rm: impossible de supprimer '/etc/shibboleth/sp-cert.pem': Aucun fichier ou dossier de ce type Generating a 2048 bit RSA private key ......................................................................+++ ..........................+++ writing new private key to '/etc/shibboleth/sp-key.pem'
recuperation des metadata de ce SP (en https !) + procedure de verification, integration et signature
[root@shibds fede-imt-metadata]# wget https://kohadev.it-sudparis.eu/Shibboleth.sso/Metadata --2012-08-23 15:42:00-- https://kohadev.it-sudparis.eu/Shibboleth.sso/Metadata [root@shibds fede-imt-metadata]# mv Metadata sp.koadev.it-sudparis.eu.xml
[root@shibds xmlsectool-1.1.5]# ./xmlsectool.sh --validateSchema --schemaDirectory schemaDirectory/samlschemas/ --inFile /root/xml/fede-imt-metadata-svn/fede-imt-metadata/sp.koadev.it-sudparis.eu.xml INFO XmlSecTool - Reading XML document from file '/root/xml/fede-imt-metadata-svn/fede-imt-metadata/sp.koadev.it-sudparis.eu.xml' INFO XmlSecTool - XML document parsed and is well-formed. INFO XmlSecTool - XML document is schema valid