Installer Shibboleth SP 3.0 sous IIS 8 ou 10
Cette article détaille l’installation et la configuration l’extension ISAPI Shibboleth fournisseur de services (Service Provider, SP) en environnent Microsoft IIS 8 (Windows 2012 R2). La méthode appliquée fonctionne aussi parfaitement sous IIS 10 (Windows 2016). Nous procéderons par étapes pour aboutir à un fournisseur de services Shibboleth opérationnel. La première étape consistera à installer les pré-requis.
Avant de commencer, je vous rappelle qu’il est très important de maintenir un serveur à l’heure une différence de temps trop importante peut générer des erreurs de type: An invalid SAML Response was received: Assertion not yet valid
Prérequis
Le rôle IIS8 doit bien sur être installé sur la plateforme sur laquelle nous souhaitons utiliser Shibboleth SP. Une installation par défaut de IIS suffit mais il faudra bien faire attention que ISAPI Extention et Filters soient sélectionnés:
Dans cet article le site et le pool d’application par défaut seront utilisés. Si un autre site doit être utilisé, il faudra noter l’ID qui lui correspond. Cette information sera utile à la configuration de Shibboleth.
Les protocoles de fédération comme SAML imposent le HTTPS comme protocole de transport. L’utilisation de HTTP n’est donc normalement à envisager.
Si le serveur héberge plusieurs site sur le port 443, il faudra prévoir d’utiliser SNI et préciser le hostname dans le champ approprié.
Installation de l’extension ISAPI Shibboleth
Le msi d’installation de Shibboleth SP (shibboleth-sp-3.0.2.0-win64.msi) est disponible à l’adresse suivante: http://shibboleth.net/downloads/service-provider/latest/win64/
Une fois l’installation du MSI terminée, il est conseillé de redémarrer le serveur.
Le service Shibboleth Daemon ci dessous doit être démarré:
Le répertoire d’installation d’installation des composants de Shibboleth est: C:\opt\shibboleth-sp\
Nous allons à présent déclarer un nouveau filtre ISAPI dans IIS. Nous allons le déclarer uniquement sur le site par défaut. Nous pourrions si besoin le faire sur la configuration globale IIS.
En sélectionnant Default Web Site, dans le panneau de droite vous devez trouver la partie IDAPI Filter. Cliquer sur « Add » puis saisir les informations ci dessous:
Name: Shibboleth
Executable: C:\opt\shibboleth-sp\lib64\shibboleth\isapi_shib.dll
Puis ajouter un module Mapping dans les Handler Mappings. En sélectionnant Default Web Site, dans le panneau de droite vous devez trouver la partie Handler Mappings. Cliquer sur « Add Module Mapping » puis saisir les informations ci dessous:
Request path: *.sso
Executable: C:\opt\shibboleth-sp\lib64\shibboleth\isapi_shib.dll
Module: IsapiModule
Name: Shibboleth
Cliquer sur Request Restrictions…et décocher la case « Invoque handler only if request is mapped to »
A présent il doit être possible de lancer à partir d’un navigateur l’URL https://monsite.test.local/Shibboleth.sso/Metadata (monsite.test.local correspond à ce qui a été « bindé » dans la configuration du site IIS.
Pour aller plus loin, vous pouvez consulter l’article ci après qui utilise Shibboleth dans un scénario d’authentification SAML / Azure AD: https://remivernier.com/index.php/2018/08/18/saml-azuread/