Cette documentation explique comment configurer le service SAML dans LL::NG, en particulier :
L'implementation SAML est basée sur Lasso. Vous devez utiliser une version récente de Lasso (>= 2.3.0).
Les paquets sont disponibles ici : http://deb.entrouvert.org/.
You will only need to install liblasso-perl package:
sudo apt-get install liblasso-perl
RPMs are available in LL::NG RPM repository (see yum_repository)
Then install lasso and lasso-perl packages:
yum install lasso lasso-perl
Téléchargez l'archive Lasso et compilez là sur votre système.
Assurez-vous que mod_rewrite est installé et que les règles de réécriture SAML2 sont activées dans la configuration Apache du portail:
<IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^/saml/metadata /metadata.pl RewriteRule ^/saml/.* /index.pl </IfModule>
Be sure that SAML2 rewrite rules are activated in Nginx portal configuration:
# SAML2 Issuer rewrite ^/saml/metadata /metadata.pl last; rewrite ^/saml/.* /index.pl last;
Allez dans le Manager et cliquez sur le nœud Service SAML 2
.
Votre EntityID, souvent utilisé comme URL des métadatas, par défaut #PORTAL#/saml/metadata.
<EntityDescriptor entityID="http://auth.example.com/saml/metadata"> ... </EntityDescriptor>
/saml/metadata
, vous devez changer la règle de réécriture d'Apache.
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 :
Replace by file
input)New keys
button)
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.
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
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.
Les formats de NameID personnalisables sont :
Les autres formats de NameID sont automatiquement gérés :
Chaque module d'authentification de LL::NG dispose d'un niveau d'authentification qui peut être associé à un contexte d'authentification SAML.
Les formats de NameID personnalisables sont :
<Organization> <OrganizationName xml:lang="en">Exemple</OrganizationName> <OrganizationDisplayName xml:lang="en">Exemple</OrganizationDisplayName> <OrganizationURL xml:lang="en">http://www.example.com</OrganizationURL> </Organization>
<SPSSODescriptor> ... </SPSSODescriptor>
Pour chaque déclaration, vous pouvez indiquer :
Les déclarations disponibles sont :
Pour chaque déclaration, vous pouvez indiquer :
Les déclarations disponibles sont :
The only authorized binding is SOAP. Peut être défini par défaut.
<IDPSSODescriptor> ... </IDPSSODescriptor>
Pour chaque déclaration, vous pouvez indiquer :
Les déclarations disponibles sont :
Pour chaque déclaration, vous pouvez indiquer :
Les déclarations disponibles sont :
The only authorized binding is SOAP. Peut être défini par défaut.
<AttributeAuthorityDescriptor> ... </AttributeAuthorityDescriptor>
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).
Ces paramètres ne sont pas obligatoires pour faire fonctionner le service SAML, mais peuvent aider à leur personnalisation :
idp
, par exemple: lemonldapidp
.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.
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 :