lemonldap-ng/po-doc/fr/pages/documentation/current/idpsaml.html
2017-08-30 16:47:26 +00:00

306 lines
17 KiB
HTML

<!DOCTYPE html>
<html lang="fr" dir="ltr">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta charset="utf-8" />
<title>documentation:2.0:idpsaml</title><!-- //if:usedebianlibs
<link rel="stylesheet" type="text/css" href="/javascript/bootstrap/css/bootstrap.min.css" />
//elsif:useexternallibs
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"></script>
//elsif:cssminified
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.min.css" />
//else --><!-- //endif -->
<meta name="generator" content="DokuWiki"/>
<meta name="robots" content="index,follow"/>
<meta name="keywords" content="documentation,2.0,idpsaml"/>
<link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="idpsaml.html"/>
<link rel="contents" href="idpsaml.html" title="Sitemap"/>
<link rel="stylesheet" type="text/css" href="lib/exe/css.php.t.bootstrap3.css"/>
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.css" />
<script type="text/javascript">/*<![CDATA[*/var NS='documentation:2.0';var JSINFO = {"id":"documentation:2.0:idpsaml","namespace":"documentation:2.0"};
/*!]]>*/</script>
<script type="text/javascript" charset="utf-8" src="lib/exe/js.php.t.bootstrap3.js"></script><!-- //if:usedebianlibs
<script type="text/javascript" src="/javascript/jquery/jquery.min.js"></script>
//elsif:useexternallibs
<script type="text/javascript" src="http://code.jquery.com/jquery-2.2.0.min.js"></script>
//elsif:jsminified
<script type="text/javascript" src="/static/bwr/jquery/dist/jquery.min.js"></script>
//else -->
<script type="text/javascript" src="/static/bwr/jquery/dist/jquery.js"></script><!-- //endif --><!-- //if:usedebianlibs
<script type="text/javascript" src="/javascript/jquery-ui/jquery-ui.min.js"></script>
//elsif:useexternallibs
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.4/jquery-ui.min.js"></script>
//elsif:jsminified
<script type="text/javascript" src="/lib/scripts/jquery-ui.min.js"></script>
//else -->
<script type="text/javascript" src="/lib/scripts/jquery-ui.js"></script><!-- //endif -->
</head>
<body>
<div class="dokuwiki export container"><!-- TOC START -->
<div id="dw__toc">
<h3 class="toggle">Table of Contents</h3>
<div>
<ul class="toc">
<li class="level1"><div class="li"><a href="#presentation">Présentation</a></div></li>
<li class="level1"><div class="li"><a href="#configuration">Configuration</a></div>
<ul class="toc">
<li class="level2"><div class="li"><a href="#saml_service">Service SAML</a></div></li>
<li class="level2"><div class="li"><a href="#issuerdb">IssuerDB</a></div></li>
<li class="level2"><div class="li"><a href="#register_lemonldapng_on_partner_service_provider">Enregistrer LemonLDAP::NG sur le fournisseur de service partenaire</a></div></li>
<li class="level2"><div class="li"><a href="#register_partner_service_provider_on_lemonldapng">Enregistrer le fournisseur de service dans LemonLDAP::NG</a></div>
<ul class="toc">
<li class="level3"><div class="li"><a href="#metadata">Métadonnée</a></div></li>
<li class="level3"><div class="li"><a href="#exported_attributes">Attributs exportés</a></div></li>
<li class="level3"><div class="li"><a href="#options">Options</a></div></li>
</ul></li>
</ul></li>
</ul>
</div>
</div><!-- TOC END -->
<h1 class="sectionedit1" id="saml_identity_provider">Fournisseur d'identité SAML</h1>
<div class="level1">
</div><!-- EDIT1 SECTION "SAML Identity Provider" [1-38] -->
<h2 class="sectionedit2" id="presentation">Présentation</h2>
<div class="level2">
<p>
<abbr title="LemonLDAP::NG">LL::NG</abbr> can act as an <abbr title="Security Assertion Markup Language">SAML</abbr> 2.0 Identity Provider, that can allow one to federate <abbr title="LemonLDAP::NG">LL::NG</abbr> with:
</p>
<ul>
<li class="level1"><div class="li"> Un autre système <abbr title="LemonLDAP::NG">LL::NG</abbr> configuré avec <a href="authsaml.html" class="wikilink1" title="documentation:2.0:authsaml">authentification SAML</a></div>
</li>
<li class="level1"><div class="li"> Tout fournisseur de service <abbr title="Security Assertion Markup Language">SAML</abbr>, par exemple:</div>
</li>
</ul>
</div><!-- EDIT3 PLUGIN_INCLUDE_START_NOREDIRECT "documentation:2.0:applications" [0-] -->
<div class="plugin_include_content plugin_include__documentation:2.0:applications">
<div class="level2">
<div class="noteclassic">Ceci nécessite de configurer <abbr title="LemonLDAP::NG">LL::NG</abbr> comme <span class="curid"><a href="idpsaml.html" class="wikilink1" title="documentation:2.0:idpsaml">fournisseur d'identité SAML</a></span>.
</div><div class="table sectionedit5"><table class="inline table table-bordered table-striped">
<thead>
<tr class="row0 roweven">
<th class="col0 centeralign"> Google Apps </th><th class="col1 centeralign"> Cornerstone </th><th class="col2 centeralign"> SalesForce </th><th class="col3 centeralign"> simpleSAMLphp </th>
</tr>
</thead>
<tr class="row1 rowodd">
<td class="col0 centeralign"> <a href="applications/googleapps.html" class="media" title="documentation:2.0:applications:googleapps"><img src="icons/kmultiple.png" class="mediacenter" alt="" /></a> </td><td class="col1 centeralign"> <a href="applications/cornerstone.html" class="media" title="documentation:2.0:applications:cornerstone"><img src="icons/kmultiple.png" class="mediacenter" alt="" /></a> </td><td class="col2 centeralign"> <a href="applications/salesforce.html" class="media" title="documentation:2.0:applications:salesforce"><img src="icons/kmultiple.png" class="mediacenter" alt="" /></a> </td><td class="col3 centeralign"> <a href="applications/simplesamlphp.html" class="media" title="documentation:2.0:applications:simplesamlphp"><img src="icons/kmultiple.png" class="mediacenter" alt="" /></a> </td>
</tr>
<tr class="row2 roweven">
<th class="col0 centeralign"> NextCloud </th><th class="col1 centeralign"> ADFS </th><th class="col2 leftalign"> </th><th class="col3 leftalign"> </th>
</tr>
<tr class="row3 rowodd">
<td class="col0 centeralign"> <a href="applications/nextcloud.html" class="media" title="documentation:2.0:applications:nextcloud"><img src="icons/kmultiple.png" class="media" alt="" /></a> </td><td class="col1 centeralign"> <a href="applications/adfs.html" class="media" title="documentation:2.0:applications:adfs"><img src="icons/kmultiple.png" class="media" alt="" /></a> </td><td class="col2 leftalign"> </td><td class="col3 leftalign"> </td>
</tr>
</table></div><!-- EDIT5 TABLE [2607-3149] -->
</div><!-- EDIT4 PLUGIN_INCLUDE_END "documentation:2.0:applications" [0-] -->
</div>
<div class="level2">
</div><!-- EDIT2 SECTION "Presentation" [39-327] -->
<h2 class="sectionedit6" id="configuration">Configuration</h2>
<div class="level2">
</div><!-- EDIT6 SECTION "Configuration" [328-354] -->
<h3 class="sectionedit7" id="saml_service">Service SAML</h3>
<div class="level3">
<p>
Voir le chapître de configuration du <a href="samlservice.html" class="wikilink1" title="documentation:2.0:samlservice">service SAML</a>.
</p>
</div><!-- EDIT7 SECTION "SAML Service" [355-435] -->
<h3 class="sectionedit8" id="issuerdb">IssuerDB</h3>
<div class="level3">
<p>
Dans le manager, aller dans <code>Paramètres généraux</code> &gt; <code>Modules fournisseurs</code> » <code><abbr title="Security Assertion Markup Language">SAML</abbr> et configurer :
</p>
<ul>
<li class="level1"><div class="li"> <strong>Activation</strong> : mettre à <code>Activé</code>.</div>
</li>
<li class="level1"><div class="li"> <strong>Chemin</strong> : laisser <code>^/saml/</code> sauf si les suffixes des points d'accès <abbr title="Security Assertion Markup Language">SAML</abbr> ont été modifiés sans la <a href="samlservice.html" class="wikilink1" title="documentation:2.0:samlservice">configuration du service SAML</a>.</div>
</li>
<li class="level1"><div class="li"> <strong>Règle d'utilisation</strong> : une règle pour autoriser l'usage de ce module, mettre 1 pour toujours l'autoriser.</div>
</li>
</ul>
<div class="notetip">Par exemple, pour n'autoriser que les utilisateurs authentifiés fortement :
<pre class="code">$authenticationLevel &gt; 2</pre>
</div>
</div><!-- EDIT8 SECTION "IssuerDB" [436-911] -->
<h3 class="sectionedit9" id="register_lemonldapng_on_partner_service_provider">Enregistrer LemonLDAP::NG sur le fournisseur de service partenaire</h3>
<div class="level3">
<p>
Après avoir configuré le service <abbr title="Security Assertion Markup Language">SAML</abbr>, exporter les métadonnéesvers le fournisseur de service partenaire.
</p>
<p>
Elles sont disponibles à l'<abbr title="Uniform Resource Locator">URL</abbr> EntityID, par défaut : <a href="http://auth.example.com/saml/metadata" class="urlextern" title="http://auth.example.com/saml/metadata" rel="nofollow">http://auth.example.com/saml/metadata</a>.
</p>
</div><!-- EDIT9 SECTION "Register LemonLDAP::NG on partner Service Provider" [912-1156] -->
<h3 class="sectionedit10" id="register_partner_service_provider_on_lemonldapng">Enregistrer le fournisseur de service dans LemonLDAP::NG</h3>
<div class="level3">
<p>
Dans le Manager, selectionner le noeud Fournisseurs d'identité <abbr title="Security Assertion Markup Language">SAML</abbr> et cliquer sur <code>Ajouter un IdP <abbr title="Security Assertion Markup Language">SAML</abbr></code>.
</p>
<p>
Le nom de SP est demandé, entrer-le et cliquer sur OK.
</p>
<p>
Il est ensuite possible d'accéder à la liste des paramètre du SP :
</p>
</div>
<h4 id="metadata">Métadonnée</h4>
<div class="level4">
<p>
Il faut enregistrer les métadatas du SP ici. Ceci peut être fait soit en téléchargeant le fichier, soit en l'obtenant par l'<abbr title="Uniform Resource Locator">URL</abbr> de métadatas du SP (à condition d'avoir un lien réseau entre le serveur et le SP):
</p>
<p>
<img src="documentation/manager-saml-metadata.png" class="mediacenter" alt="" />
</p>
<div class="notetip">On peut aussi éditer la métadonnée directement dans le champ textarea
</div>
</div>
<h4 id="exported_attributes">Attributs exportés</h4>
<div class="level4">
<p>
<img src="documentation/manager-saml-attributes.png" class="mediacenter" alt="" />
</p>
<p>
Pour chaque attribut, on peut indiquer :
</p>
<ul>
<li class="level1"><div class="li"> <strong>Nom de clef</strong> : nom de la clef dans la session LemonLDAP::NG</div>
</li>
<li class="level1"><div class="li"> <strong>Nom</strong>: Nom de l'attribut <abbr title="Security Assertion Markup Language">SAML</abbr>.</div>
</li>
<li class="level1"><div class="li"> <strong>Nom alternatif</strong>: optionnel, nom alternatif de l'attribut <abbr title="Security Assertion Markup Language">SAML</abbr>.</div>
</li>
<li class="level1"><div class="li"> <strong>Obligatoire</strong> : si activé, cet attribut sera envoyé dans les réponses d'authentification. Sinon, il ne sera envoyé dans les réponses que s'il est explicitement demandé dans les requêtes d'attributs.</div>
</li>
<li class="level1"><div class="li"> <strong>Format</strong> (optionnel) : format de l'attribut <abbr title="Security Assertion Markup Language">SAML</abbr>.</div>
</li>
</ul>
</div>
<h4 id="options">Options</h4>
<div class="level4">
</div>
<h5 id="authentication_response">Réponse d'authentification</h5>
<div class="level5">
<ul>
<li class="level1"><div class="li"> <strong>Format de NameID par défaut</strong> : si aucun fiormat de NameID n'est demandé, ou si le format n'est pas défini, ce format de NameID sera utilisé. Si aucune valeur n'est indiquée, le format de NameID par défaut est Email.</div>
</li>
<li class="level1"><div class="li"> <strong>Forcer la clef de session NameID</strong> : si vide, la correspondance NameID définie dans la configuration du <a href="samlservice.html" class="wikilink1" title="documentation:2.0:samlservice">service SAML</a> sera utilisée. On peut forcer ici une autre clef de session qui sera utilisée comme contenu sde NameID.</div>
</li>
<li class="level1"><div class="li"> <strong>Usage unique</strong> : active le drapeau OneTimeUse dans les réponses d'authentification (<code>&lt;Condtions&gt;</code>).</div>
</li>
<li class="level1"><div class="li"> <strong>Durée sessionNotOnOrAfter</strong> : durée en secondes, ajoutée à la durée d'authentification, pour définir la valeur sessionNotOnOrAfter dans les réponses <abbr title="Security Assertion Markup Language">SAML</abbr> (<code>&lt;AuthnStatement&gt;</code>):</div>
</li>
</ul>
<pre class="code file xml"><span class="sc3"><span class="re1">&lt;saml:AuthnStatement</span> <span class="re0">AuthnInstant</span>=<span class="st0">"2014-07-21T11:47:08Z"</span></span>
<span class="sc3"> <span class="re0">SessionIndex</span>=<span class="st0">"loVvqZX+Vja2dtgt/N+AymTmckGyITyVt+UJ6vUFSFkE78S8zg+aomXX7oZ9qX1UxOEHf6Q4DUstewSJh1uK1Q=="</span></span>
<span class="sc3"> <span class="re0">SessionNotOnOrAfter</span>=<span class="st0">"2014-07-21T15:47:08Z"</span><span class="re2">&gt;</span></span></pre>
<ul>
<li class="level1"><div class="li"> <strong>Durée notOnOrAfter</strong> : durée en secondes, ajoutée à la durée d'authentification, pour définir la valeur notOnOrAfter dans les réponses <abbr title="Security Assertion Markup Language">SAML</abbr> (<code>&lt;Conditions&gt;</code> et <code>&lt;SubjectConfirmationData&gt;</code>) :</div>
</li>
</ul>
<pre class="code file xml"><span class="sc3"><span class="re1">&lt;saml:SubjectConfirmationData</span> <span class="re0">NotOnOrAfter</span>=<span class="st0">"2014-07-21T12:47:08Z"</span></span>
<span class="sc3"> <span class="re0">Recipient</span>=<span class="st0">"http://simplesamlphp.example.com/simplesamlphp/module.php/saml/sp/saml2-acs.php/default-sp"</span></span>
<span class="sc3"> <span class="re0">InResponseTo</span>=<span class="st0">"_3cfa896ab05730ac81f413e1e13cc42aa529eceea1"</span><span class="re2">/&gt;</span></span></pre>
<pre class="code file xml"><span class="sc3"><span class="re1">&lt;saml:Conditions</span> <span class="re0">NotBefore</span>=<span class="st0">"2014-07-21T11:46:08Z"</span></span>
<span class="sc3"> <span class="re0">NotOnOrAfter</span>=<span class="st0">"2014-07-21T12:48:08Z"</span><span class="re2">&gt;</span></span></pre>
<div class="noteimportant">Il y a une tolérance de 60 seconds dans les <code>&lt;Conditions&gt;</code>
</div><ul>
<li class="level1"><div class="li"> <strong>Force UTF-8</strong>: Activate to force UTF-8 decoding of values in <abbr title="Security Assertion Markup Language">SAML</abbr> attributes. If set to 0, the value from the session is directly copied into <abbr title="Security Assertion Markup Language">SAML</abbr> attribute.</div>
</li>
</ul>
</div>
<h5 id="signature">Signature</h5>
<div class="level5">
<p>
Ces options surchargent les options de signature du service (voir la <a href="samlservice.html#general_options" class="wikilink1" title="documentation:2.0:samlservice">configuration du service SAML</a>).
</p>
<ul>
<li class="level1"><div class="li"> <strong>Signature des messages <abbr title="Authentification unique (Single Sign On)">SSO</abbr></strong> : signe les messages <abbr title="Authentification unique (Single Sign On)">SSO</abbr></div>
</li>
<li class="level1"><div class="li"> <strong>Vérification de la signature des messages <abbr title="Authentification unique (Single Sign On)">SSO</abbr></strong> : vérifie la signature des messages <abbr title="Authentification unique (Single Sign On)">SSO</abbr></div>
</li>
<li class="level1"><div class="li"> <strong>Signature des messages SLO</strong> : signe les messages de déconnexion SLO (single logout)</div>
</li>
<li class="level1"><div class="li"> <strong>Vérifie la signature des messages SLO</strong> : vérifie la signature des messages SLO</div>
</li>
</ul>
</div>
<h5 id="security">Sécurité</h5>
<div class="level5">
<ul>
<li class="level1"><div class="li"> <strong>Mode de chiffrement</strong> : fixe le mode de chiffrement pour cet IDP (None, NameID ou Assertion).</div>
</li>
<li class="level1"><div class="li"> <strong>Activer l'<abbr title="Uniform Resource Locator">URL</abbr> initiée par l'IdP</strong> : mettre à <code>On</code> pour activer l'<abbr title="Uniform Resource Locator">URL</abbr> initiée par l'IdP sur ce SP.</div>
</li>
</ul>
<div class="notetip">L'<abbr title="Uniform Resource Locator">URL</abbr> initiée par l'IdP est l'<abbr title="Uniform Resource Locator">URL</abbr> <abbr title="Security Assertion Markup Language">SAML</abbr> du <abbr title="Authentification unique (Single Sign On)">SSO</abbr> avec les paramètres GET :<ul>
<li class="level1"><div class="li"> IDPInitiated: 1</div>
</li>
<li class="level1"><div class="li"> Un parmi :</div>
<ul>
<li class="level2"><div class="li"> sp: identifiant du SP</div>
</li>
<li class="level2"><div class="li"> spConfKey : clef de configuration du SP</div>
</li>
</ul>
</li>
</ul>
<p>
Par exemple: <a href="http://auth.example.com/saml/singleSignOn?IDPInitiated=1&amp;spConfKey=simplesamlphp" class="urlextern" title="http://auth.example.com/saml/singleSignOn?IDPInitiated=1&amp;spConfKey=simplesamlphp" rel="nofollow">http://auth.example.com/saml/singleSignOn?IDPInitiated=1&amp;spConfKey=simplesamlphp</a>
</p>
</div>
</div><!-- EDIT10 SECTION "Register partner Service Provider on LemonLDAP::NG" [1157-] -->
</div>
</body>
</html>