Table of Contents

Configuration du service SAML

La configuration du service SAML est une étape commune pour configurer LL::NG comme fournisseur de service SAML (SP) ou fournisseur d'identité SAML (IDP).

Présentation

Cette documentation explique comment configurer le service SAML dans LL::NG, en particulier :

La configuration du service est utilisée pour générer les métadatas SAML de LL::NG, qui sont partagées avec les autres fournisseurs. Ceci signifie que si vous modifiez quelque chose ici, vous devez ré-exporter les metadatas aux autres fournisseurs. En d'autres mots, prenez le temps de bien configurer cette partie avant de partager les metadatas.

Pré-requis

Lasso

L'implementation SAML est basée sur Lasso. Vous devez utiliser une version récente de Lasso (>= 2.3.0).

Debian/Ubuntu

Les paquets sont disponibles ici : http://deb.entrouvert.org/.

You will only need to install liblasso-perl package:

sudo apt-get install liblasso-perl

RHEL/CentOS/Fedora

RPMs are available in LL::NG RPM repository (see yum_repository)

Then install lasso and lasso-perl packages:

yum install lasso lasso-perl
Only EL6 64bits and EL7 64bits package are available.

Autres

Téléchargez l'archive Lasso et compilez là sur votre système.

Configuration du service

Allez dans le Manager et cliquez sur le nœud Service SAML 2.

Vous pouvez utiliser le mot clef #PORTAL# dans les valeurs pour remplacer l'URL du portail.

Identifiant d'entrée

Votre EntityID, souvent utilisé comme URL des métadatas, par défaut #PORTAL#/saml/metadata.

Cette valeur est utilisé dans les metadatas :
<EntityDescriptor entityID="http://auth.example.com/saml/metadata">
  ...
</EntityDescriptor>
Si vous modifiez le suffixe /saml/metadata, vous devez changer la règle de réécriture d'Apache.

Paramètres de sécurité

Vous pouver définir des clefs pour la signature et le chiffrement des messages SAML. Si aucune clef de chiffrement n'est définie, la clef de signature est aussi utilisée pour le chiffrement.

Pour définir les clefs, vous pouvez :

Vous pouvez entrer un mot de passe de protection de la clef privée. Il vous sera demandé à la génération de la clef ou vous pouvez l'entrer dans le champ Mot-de-passe de la clef privée.

Vous pouver importer un certificat contenant la clef publique au lieu d'une simple clef. Toutefois, le certificat ne sera pas réellement validé par les autres composants SAML (date d'expiration, nom commun, etc.), mais simplement vu comme un conteneur de clef publique.

You can force LL::NG to use this certificate in SAML responses by enabling Use certificate in response option.

You can easily generate a certificate to replace your public key by saving the private key in a file, and use openssl commands to issue a self-signed certificate:
$ openssl req -new -key private.key -out cert.csr
$ openssl x509 -req -days 3650 -in cert.csr -signkey private.key -out cert.pem

Formats de NameID

SAML peut utiliser plusieurs formats de NameID. NameID est l'identifiant principal de l'utilisateur transmis dans les messages SAML. Vous pouvez indiquer ici l'attribut de session de LL::NG qui sera associé au format du NameID.

Ce paramètre est utilisé par l'IdP SAML pour construire le NameID dans les réponses d'authentification.

Les formats de NameID personnalisables sont :

Par exemple, si vous utilisez Active-Directory comme système d'authentification, vous pouvez utiliser sAMAccountName come format de NameID Windows.

Les autres formats de NameID sont automatiquement gérés :

Contextes d'authentification

Chaque module d'authentification de LL::NG dispose d'un niveau d'authentification qui peut être associé à un contexte d'authentification SAML.

Ce paramètre est utilisé par l'IdP SAML pour renseigner le contexte d'authentification dans les réponses. Il utilise le niveau d'authentification enregistré dans la session de l'utilisateur pour établir le contexte d'authentification SAML. Il est également utilisé par le SP SAML pour définir le niveau d'authentification dans la session de l'utilisateur en se basant sur la réponse d'authentification.

Les formats de NameID personnalisables sont :

Organisation

Ceci concerne tous les paramètres de la section "organization" des métadatas :
<Organization>
  <OrganizationName xml:lang="en">Exemple</OrganizationName>
  <OrganizationDisplayName xml:lang="en">Exemple</OrganizationDisplayName>
  <OrganizationURL xml:lang="en">http://www.example.com</OrganizationURL>
</Organization>

Fournisseur de service

Ceci concerne tous les paramètres de la section « fournisseur de service » des metadatas :
<SPSSODescriptor>
  ...
</SPSSODescriptor>

Options générales

Ces options peuvent être surchargées pour chaque fournisseur d'identité.

Single Logout (SLO)

Pour chaque déclaration, vous pouvez indiquer :

Les déclarations disponibles sont :

Consommateur d'assertions

Pour chaque déclaration, vous pouvez indiquer :

Les déclarations disponibles sont :

Résolution des artifacts

The only authorized binding is SOAP. Peut être défini par défaut.

Fournisseur d'identité

Ceci concerne tous les paramètres de la section « fournisseur de service » des metadatas :
<IDPSSODescriptor>
  ...
</IDPSSODescriptor>

Paramètres généraux

Cette option peut être surchargée pour chaque fournisseur de service.

Authentification unique (Single Sign On)

Pour chaque déclaration, vous pouvez indiquer :

Les déclarations disponibles sont :

Single Logout (SLO)

Pour chaque déclaration, vous pouvez indiquer :

Les déclarations disponibles sont :

Résolution des artifacts

The only authorized binding is SOAP. Peut être défini par défaut.

Autorité d'attributs

Ceci concerne tous les paramètres de la section « autorité d'attributs » des métadatas
<AttributeAuthorityDescriptor>
  ...
</AttributeAuthorityDescriptor>

Service d'attribut

This is the only service to configure, and it accept only the SOAP binding.

Response Location should be empty, as SOAP responses are directly returned (synchronous binding).

Avancé

Ces paramètres ne sont pas obligatoires pour faire fonctionner le service SAML, mais peuvent aider à leur personnalisation :

Options et nom du module de sessions SAML

Par défautBy, le module de session principal est utilisé pour stocker les données temporaires SAML (tel les états de relais), mais les sessions SAML doivent disposer d'un module compatible avec les fonctionnalités de restrictions des sessions.

C'est par exemple le cas de Memcached. Dans ce cas, vous devez utiliser un module différent pour gérer les sessions SAML.

Vous pouvez également utiliser un module différent pour répartir les sessions SSO et SAML.
Le domaine commun de cookie est également connu comme service WAYF.

Le domaine commun est utilisé par le SP SAML pour trouver le fournisseur d'identité de l'utilisateur et par l'IdP SAML pour s'enregistrer dans la liste des IDP.

Les paramètres de configuration sont :