<liclass="level3"><divclass="li"><ahref="#saml_sessions_module_name_and_options">Options et nom du module de sessions SAML</a></div></li>
<liclass="level3"><divclass="li"><ahref="#common_domain_cookie">Domaine commun de cookie</a></div></li>
</ul></li>
</ul></li>
</ul>
</div>
</div><!-- TOC END -->
<h1class="sectionedit1"id="saml_service_configuration">Configuration du service SAML</h1>
<divclass="level1">
<divclass="noteclassic">La configuration du service <abbrtitle="Security Assertion Markup Language">SAML</abbr> est une étape commune pour configurer <abbrtitle="LemonLDAP::NG">LL::NG</abbr> comme <ahref="authsaml.html"class="wikilink1"title="documentation:2.0:authsaml">fournisseur de service SAML (SP)</a> ou <ahref="idpsaml.html"class="wikilink1"title="documentation:2.0:idpsaml">fournisseur d'identité SAML (IDP)</a>.
</div>
</div><!-- EDIT1 SECTION "SAML service configuration" [1-169] -->
Cette documentation explique comment configurer le service <abbrtitle="Security Assertion Markup Language">SAML</abbr> dans <abbrtitle="LemonLDAP::NG">LL::NG</abbr>, en particulier :
</p>
<ul>
<liclass="level1"><divclass="li"> Installer les pré-requis</div>
</li>
<liclass="level1"><divclass="li"> Importer ou generer les clefs de securité</div>
</li>
<liclass="level1"><divclass="li"> Indiquer les points d'entrées <abbrtitle="Security Assertion Markup Language">SAML</abbr></div>
</li>
</ul>
<divclass="noteimportant">La configuration du service est utilisée pour générer les métadatas <abbrtitle="Security Assertion Markup Language">SAML</abbr> de <abbrtitle="LemonLDAP::NG">LL::NG</abbr>, 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.
L'implementation SAML est basée sur <ahref="http://lasso.entrouvert.org"class="urlextern"title="http://lasso.entrouvert.org"rel="nofollow">Lasso</a>. Vous devez utiliser une version récente de Lasso (>= 2.3.0).
</p>
</div>
<h4id="debianubuntu">Debian/Ubuntu</h4>
<divclass="level4">
<p>
Les paquets sont disponibles ici : <ahref="http://deb.entrouvert.org/"class="urlextern"title="http://deb.entrouvert.org/"rel="nofollow">http://deb.entrouvert.org/</a>.
</p>
<p>
You will only need to install liblasso-perl package:
RPMs are available in <abbrtitle="LemonLDAP::NG">LL::NG</abbr> RPM repository (see <ahref="installrpm.html#yum_repository"class="wikilink1"title="documentation:2.0:installrpm">yum_repository</a>)
<divclass="noteimportant">Only EL6 64bits and EL7 64bits package are available.
</div>
</div>
<h4id="other">Autres</h4>
<divclass="level4">
<p>
<ahref="http://lasso.entrouvert.org/download/"class="urlextern"title="http://lasso.entrouvert.org/download/"rel="nofollow">Téléchargez l'archive Lasso</a> et compilez là sur votre système.
Allez dans le Manager et cliquez sur le nœud <code>Service <abbrtitle="Security Assertion Markup Language">SAML</abbr> 2</code>.
</p>
<divclass="notetip">Vous pouvez utiliser le mot clef #PORTAL# dans les valeurs pour remplacer l'<abbrtitle="Uniform Resource Locator">URL</abbr> du portail.
Vous pouver définir des clefs pour la signature et le chiffrement des messages <abbrtitle="Security Assertion Markup Language">SAML</abbr>. Si aucune clef de chiffrement n'est définie, la clef de signature est aussi utilisée pour le chiffrement.
</p>
<p>
Pour définir les clefs, vous pouvez :
</p>
<ul>
<liclass="level1"><divclass="li"> import your own private and public keys (<code>Replace by file</code> input)</div>
</li>
<liclass="level1"><divclass="li"> generate new public and private keys (<code>New keys</code> button)</div>
</li>
</ul>
<divclass="notetip">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 <code>Mot-de-passe de la clef privée</code>.
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 <abbrtitle="Security Assertion Markup Language">SAML</abbr> (date d'expiration, nom commun, etc.), mais simplement vu comme un conteneur de clef publique.
</p>
<p>
You can force <abbrtitle="LemonLDAP::NG">LL::NG</abbr> to use this certificate in <abbrtitle="Security Assertion Markup Language">SAML</abbr> responses by enabling <strong>Use certificate in response</strong> option.
</p>
<divclass="notetip">You can easily generate a certificate to replace your public key by saving the private key in a file, and use <code>openssl</code> commands to issue a self-signed certificate:
<abbrtitle="Security Assertion Markup Language">SAML</abbr> peut utiliser plusieurs formats de NameID. NameID est l'identifiant principal de l'utilisateur transmis dans les messages <abbrtitle="Security Assertion Markup Language">SAML</abbr>. Vous pouvez indiquer ici l'attribut de session de <abbrtitle="LemonLDAP::NG">LL::NG</abbr> qui sera associé au format du NameID.
</p>
<divclass="noteclassic">Ce paramètre est utilisé par l'<ahref="idpsaml.html"class="wikilink1"title="documentation:2.0:idpsaml">IdP SAML</a> pour construire le NameID dans les réponses d'authentification.
</div>
<p>
Les formats de NameID personnalisables sont :
</p>
<ul>
<liclass="level1"><divclass="li"> Email</div>
</li>
<liclass="level1"><divclass="li"> X509</div>
</li>
<liclass="level1"><divclass="li"> Windows</div>
</li>
<liclass="level1"><divclass="li"> Kerberos</div>
</li>
</ul>
<divclass="notetip">Par exemple, si vous utilisez <ahref="authldap.html"class="wikilink1"title="documentation:2.0:authldap">Active-Directory comme système d'authentification</a>, vous pouvez utiliser sAMAccountName come format de NameID Windows.
</div>
<p>
Les autres formats de NameID sont automatiquement gérés :
</p>
<ul>
<liclass="level1"><divclass="li"><strong>Transient</strong>: le NameID est généré</div>
</li>
<liclass="level1"><divclass="li"><strong>Persistent</strong>: le NameID est restoré depuis la session précédente</div>
</li>
<liclass="level1"><divclass="li"><strong>Undefined</strong>: le format de NameID par défaut est utilisé</div>
Chaque module d'authentification de <abbrtitle="LemonLDAP::NG">LL::NG</abbr> dispose d'un niveau d'authentification qui peut être associé à un <ahref="http://docs.oasis-open.org/security/saml/v2.0/saml-authn-context-2.0-os.pdf"class="urlextern"title="http://docs.oasis-open.org/security/saml/v2.0/saml-authn-context-2.0-os.pdf"rel="nofollow">contexte d'authentification SAML</a>.
</p>
<divclass="noteclassic">Ce paramètre est utilisé par l'<ahref="idpsaml.html"class="wikilink1"title="documentation:2.0:idpsaml">IdP SAML</a> 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 <abbrtitle="Security Assertion Markup Language">SAML</abbr>. Il est également utilisé par le <ahref="authsaml.html"class="wikilink1"title="documentation:2.0:authsaml">SP SAML</a> pour définir le niveau d'authentification dans la session de l'utilisateur en se basant sur la réponse d'authentification.
<liclass="level1"><divclass="li"><strong>Nom affiché (display name)</strong> : peut être affiché par le fournisseur d'identité (IDP), this is often your society name</div>
</li>
<liclass="level1"><divclass="li"><strong>Name</strong>: nom interne</div>
</li>
<liclass="level1"><divclass="li"><strong><abbrtitle="Uniform Resource Locator">URL</abbr></strong>: <abbrtitle="Uniform Resource Locator">URL</abbr> de votre organisation</div>
<liclass="level1"><divclass="li"><strong>Requête d'authentification signée</strong> : mettre à « activé » pour toujours signer les requêtes d'authentifications.</div>
</li>
<liclass="level1"><divclass="li"><strong>Exiger des assertions signées</strong> : mettre à « activé » pour exiger de recevoir des assertions signées.</div>
</li>
</ul>
<divclass="notetip">Ces options peuvent être surchargées pour chaque fournisseur d'identité.
</div>
</div>
<h4id="single_logout">Single Logout (SLO)</h4>
<divclass="level4">
<p>
Pour chaque déclaration, vous pouvez indiquer :
</p>
<ul>
<liclass="level1"><divclass="li"><strong>Location</strong>: Point d'accès pour les requêtes de SLO.</div>
</li>
<liclass="level1"><divclass="li"><strong>Response Location</strong>: Point d'accès pour les réponses SLO.</div>
<liclass="level1"><divclass="li"><strong>Défaut</strong> : déclaration utilisée par défaut pour les réponses d'authentification.</div>
</li>
<liclass="level1"><divclass="li"><strong>Location</strong>: Point d'accès des requêtes et réponses <abbrtitle="Authentification unique (Single Sign On)">SSO</abbr>.</div>
<liclass="level1"><divclass="li"><strong>Exiger des requêtes d'authentification signées</strong> : mettre à « activer » pour exiger de recevoir des requêtes d'authentification signées.</div>
</li>
</ul>
<divclass="notetip">Cette option peut être surchargée pour chaque fournisseur de service.
<liclass="level1"><divclass="li"><strong>Location</strong>: Point d'accès pour les requêtes <abbrtitle="Authentification unique (Single Sign On)">SSO</abbr>.</div>
</li>
<liclass="level1"><divclass="li"><strong>Response Location</strong> : Point d'accès pour les réponses <abbrtitle="Authentification unique (Single Sign On)">SSO</abbr>.</div>
Ces paramètres ne sont pas obligatoires pour faire fonctionner le service <abbrtitle="Security Assertion Markup Language">SAML</abbr>, mais peuvent aider à leur personnalisation :
</p>
<ul>
<liclass="level1"><divclass="li"><strong>Nom du cookie de résolution de l'IDP</strong>: par défaut, c'est le nom du cookie <abbrtitle="LemonLDAP::NG">LL::NG</abbr> auquel est adjoint <code>idp</code>, par exemple: <code>lemonldapidp</code>.</div>
</li>
<liclass="level1"><divclass="li"><strong>Conversion des métadatas un UTF8</strong> : mettre à « activé » pour forcer la conversion des métadata des partenaires.</div>
</li>
</ul>
</div>
<h4id="saml_sessions_module_name_and_options">Options et nom du module de sessions SAML</h4>
<divclass="level4">
<p>
Par défautBy, le module de session principal est utilisé pour stocker les données temporaires <abbrtitle="Security Assertion Markup Language">SAML</abbr> (tel les états de relais), mais les sessions <abbrtitle="Security Assertion Markup Language">SAML</abbr> doivent disposer d'un module compatible avec les <ahref="documentation/features.html#session_restrictions"class="wikilink1"title="documentation:features">fonctionnalités de restrictions des sessions</a>.
</p>
<p>
C'est par exemple le cas de <ahref="memcachedsessionbackend.html"class="wikilink1"title="documentation:2.0:memcachedsessionbackend">Memcached</a>. Dans ce cas, vous devez utiliser un module différent pour gérer les sessions <abbrtitle="Security Assertion Markup Language">SAML</abbr>.
</p>
<divclass="notetip">Vous pouvez également utiliser un module différent pour répartir les sessions <abbrtitle="Authentification unique (Single Sign On)">SSO</abbr> et <abbrtitle="Security Assertion Markup Language">SAML</abbr>.
<liclass="level1"><divclass="li"><strong>Durée de vie d'une session RelayState</strong> : durée de vie d'une session RelayState. Par défaut, la session RelayState est détruite lorsqu'elle est lue. This timeout allows one to purge sessions of lost RelayState.</div>
<liclass="level1"><divclass="li"><strong>Use specific query_string method</strong>: the CGI query_string method may break invalid <abbrtitle="Uniform Resource Locator">URL</abbr> encoded signatures (issued for example by ADFS). This option allows one to use a specific method to extract query string, that should be compliant with non standard <abbrtitle="Uniform Resource Locator">URL</abbr> encoded parameters.</div>
<h4id="common_domain_cookie">Domaine commun de cookie</h4>
<divclass="level4">
<divclass="noteclassic">Le domaine commun de cookie est également connu comme <ahref="http://www.switch.ch/aai/support/tools/wayf.html"class="urlextern"title="http://www.switch.ch/aai/support/tools/wayf.html"rel="nofollow">service WAYF</a>.
</div>
<p>
Le domaine commun est utilisé par le <ahref="authsaml.html"class="wikilink1"title="documentation:2.0:authsaml">SP SAML</a> pour trouver le fournisseur d'identité de l'utilisateur et par l'<ahref="idpsaml.html"class="wikilink1"title="documentation:2.0:idpsaml">IdP SAML</a> pour s'enregistrer dans la liste des IDP.
</p>
<p>
Les paramètres de configuration sont :
</p>
<ul>
<liclass="level1"><divclass="li"><strong>Activation</strong> : mettre à « activé » pour activer le support du domaine commun de cookie.</div>
</li>
<liclass="level1"><divclass="li"><strong>Domaine commun</strong> : Nom du domaine commun (où le cookie commun est disponible).</div>
</li>
<liclass="level1"><divclass="li"><strong><abbrtitle="Uniform Resource Locator">URL</abbr> de lecture</strong> : <abbrtitle="Uniform Resource Locator">URL</abbr> utilisée par le SP <abbrtitle="Security Assertion Markup Language">SAML</abbr> pour lire le cookie. Laissez vide pour désactiver cette fonctionnalité.</div>
</li>
<liclass="level1"><divclass="li"><strong><abbrtitle="Uniform Resource Locator">URL</abbr> d'écriture</strong> : <abbrtitle="Uniform Resource Locator">URL</abbr> utilisée par l'IdP <abbrtitle="Security Assertion Markup Language">SAML</abbr> pour écrire le cookie. Laissez vide pour désactiver cette fonctionnalité.</div>