lemonldap-ng/po-doc/fr/pages/documentation/current/applications/googleapps.html
2017-02-07 16:35:26 +00:00

235 lines
15 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:applications:googleapps</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,applications,googleapps"/>
<link rel="search" type="application/opensearchdescription+xml" href="../lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="googleapps.html"/>
<link rel="contents" href="googleapps.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:applications';var JSINFO = {"id":"documentation:2.0:applications:googleapps","namespace":"documentation:2.0:applications"};
/*!]]>*/</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="#google_apps_control_panel">Panneua de contrôle Google Apps</a></div></li>
<li class="level2"><div class="li"><a href="#certificate">Certificat</a></div></li>
<li class="level2"><div class="li"><a href="#new_service_provider">Nouveau fournisseur de service</a></div></li>
<li class="level2"><div class="li"><a href="#application_menu">Menu application</a></div></li>
<li class="level2"><div class="li"><a href="#logout">Déconnexion</a></div></li>
</ul></li>
</ul>
</div>
</div><!-- TOC END -->
<h1 class="sectionedit1" id="google_apps">Google Apps</h1>
<div class="level1">
<p>
<a href="googleapps_logo.png_documentation_2.0_applications_googleapps.html" class="media" title="applications:googleapps_logo.png"><img src="googleapps_logo.png" class="mediacenter" alt="" /></a>
</p>
</div><!-- EDIT1 SECTION "Google Apps" [1-69] -->
<h2 class="sectionedit2" id="presentation">Présentation</h2>
<div class="level2">
<p>
<a href="http://www.google.com/apps/" class="urlextern" title="http://www.google.com/apps/" rel="nofollow">Les applications Google</a> peuvent utiliser <abbr title="Security Assertion Markup Language">SAML</abbr> pour authentifier les utilisateurs, en se comportant comme des fournisseurs de service <abbr title="Security Assertion Markup Language">SAML</abbr>, tel qu'expliqué <a href="http://code.google.com/googleapps/domain/sso/saml_reference_implementation.html" class="urlextern" title="http://code.google.com/googleapps/domain/sso/saml_reference_implementation.html" rel="nofollow">ici</a>.
</p>
<p>
Pour fonctionner avec <abbr title="LemonLDAP::NG">LL::NG</abbr> il faut :
</p>
<ul>
<li class="level1"><div class="li"> Un <a href="http://www.google.com/apps/intl/en/business/index.html" class="urlextern" title="http://www.google.com/apps/intl/en/business/index.html" rel="nofollow">compte applicatif Google entreprise</a></div>
</li>
<li class="level1"><div class="li"> <abbr title="LemonLDAP::NG">LL::NG</abbr> configuré comme <a href="../idpsaml.html" class="wikilink1" title="documentation:2.0:idpsaml">fournisseur d'identité SAML</a></div>
</li>
<li class="level1"><div class="li"> Enregistrer les utilisateurs dans Google Apps avec la même adresse mail que celle utilisée dans <abbr title="LemonLDAP::NG">LL::NG</abbr> (l'adresse mail sera le NameID échangé entre Google Apps et <abbr title="LemonLDAP::NG">LL::NG</abbr>)</div>
</li>
</ul>
</div><!-- EDIT2 SECTION "Presentation" [70-660] -->
<h2 class="sectionedit3" id="configuration">Configuration</h2>
<div class="level2">
</div><!-- EDIT3 SECTION "Configuration" [661-687] -->
<h3 class="sectionedit4" id="google_apps_control_panel">Panneua de contrôle Google Apps</h3>
<div class="level3">
<div class="noteclassic">Cette section est basée sur la <a href="http://simplesamlphp.org/docs/1.6/simplesamlphp-googleapps" class="urlextern" title="http://simplesamlphp.org/docs/1.6/simplesamlphp-googleapps" rel="nofollow">documentation SimpleSAMLPHP</a>.
</div>
<p>
Comme administrateur, aller dans le panneau de contrôle Google Apps et cliquer sur les outils avancés click (Advanced tools) :
</p>
<p>
<a href="../documentation/googleapps-menu.png_documentation_2.0_applications_googleapps.html" class="media" title="documentation:googleapps-menu.png"><img src="../documentation/googleapps-menu.png" class="mediacenter" alt="" /></a>
</p>
<p>
Ensuite sélectionner <code>Set up single sign-on (<abbr title="Authentification unique (Single Sign On)">SSO</abbr>)</code>:
</p>
<p>
<a href="../documentation/googleapps-sso.png_documentation_2.0_applications_googleapps.html" class="media" title="documentation:googleapps-sso.png"><img src="../documentation/googleapps-sso.png" class="mediacenter" alt="" /></a>
</p>
<p>
Puis configurer tous les paramètres <abbr title="Security Assertion Markup Language">SAML</abbr> :
</p>
<p>
<a href="../documentation/googleapps-ssoconfig.png_documentation_2.0_applications_googleapps.html" class="media" title="documentation:googleapps-ssoconfig.png"><img src="../documentation/googleapps-ssoconfig.png" class="mediacenter" alt="" /></a>
</p>
<ul>
<li class="level1"><div class="li"> <strong>Enable Single Sign-On</strong>: sélectionner. Le désélectionner désactive l'authentification <abbr title="Security Assertion Markup Language">SAML</abbr> (à utiliser, si votre fournisseur d'identité est hors service).</div>
</li>
<li class="level1"><div class="li"> <strong>Sign-in page <abbr title="Uniform Resource Locator">URL</abbr></strong>: point d'accès <abbr title="Authentification unique (Single Sign On)">SSO</abbr> (HTTP-Redirect binding). Exemple : <a href="http://auth.example.com/saml/singleSignOn" class="urlextern" title="http://auth.example.com/saml/singleSignOn" rel="nofollow">http://auth.example.com/saml/singleSignOn</a></div>
</li>
<li class="level1"><div class="li"> <strong>Sign-out page <abbr title="Uniform Resource Locator">URL</abbr></strong>: il ne s'agit pas du point d'accès de déconnexion globale (SLO) (Google Apps ne le supporte pas), mais de la page de déconnexion. Exemple: <a href="http://auth.example.com/?logout=1" class="urlextern" title="http://auth.example.com/?logout=1" rel="nofollow">http://auth.example.com/?logout=1</a></div>
</li>
<li class="level1"><div class="li"> <strong>Change password <abbr title="Uniform Resource Locator">URL</abbr></strong>: où les utilisateurs peuvent changer leur mot-de-passe. Exemple: <a href="http://auth.example.com" class="urlextern" title="http://auth.example.com" rel="nofollow">http://auth.example.com</a></div>
</li>
</ul>
</div><!-- EDIT4 SECTION "Google Apps control panel" [688-1671] -->
<h3 class="sectionedit5" id="certificate">Certificat</h3>
<div class="level3">
<p>
Pour le certificate, vous pouvez le construire en signant la clef privée enregistrée dans le Manager. Selectionner la clef, et l'exporter (bouton <code>Télécharger</code>): Ceci télécharge les clefs publique et privée.
</p>
<p>
Garder la clef privée dans un fichier, par exemple lemonldap-ng-priv.key, et utiliser openssl pour générer un certificat auto-signé :
</p>
<pre class="code">openssl req -new -key lemonldap-ng-priv.key -out cert.csr
openssl x509 -req -days 3650 -in cert.csr -signkey lemonldap-ng-priv.key -out cert.pem</pre>
<p>
Télécharger ensuite le certificat (<code>cert.pem</code>) dans Google Apps.
</p>
<div class="notetip">On peut aussi utiliser le certificat au lieu de la clef publique dans les métadatas <abbr title="Security Assertion Markup Language">SAML</abbr>, voir <a href="../samlservice.html#security_parameters" class="wikilink1" title="documentation:2.0:samlservice">configuration du service SAML</a>
</div>
</div><!-- EDIT5 SECTION "Certificate" [1672-2407] -->
<h3 class="sectionedit6" id="new_service_provider">Nouveau fournisseur de service</h3>
<div class="level3">
<p>
Il est nécessaire d'avoir configuré <abbr title="LemonLDAP::NG">LL::NG</abbr> comme <a href="../idpsaml.html" class="wikilink1" title="documentation:2.0:idpsaml">fournisseur d'identité SAML</a>,
</p>
<p>
Ajouter ensuite Google Apps comme nouveau fournisseur de service <abbr title="Security Assertion Markup Language">SAML</abbr> :
</p>
<ol>
<li class="level1"><div class="li"> Dans le manager, cliquer sur fournisseurs de service <abbr title="Security Assertion Markup Language">SAML</abbr> puis sur le bouton <code>Nouveau fournisseur de service</code>.</div>
</li>
<li class="level1"><div class="li"> Mettre GoogleApps comme nom de fournisseur de service.</div>
</li>
<li class="level1"><div class="li"> Mettre <code>Email</code> dans <code>Options</code> » <code>Réponse d'authentification</code> » <code>Format NameID par défaut</code></div>
</li>
<li class="level1"><div class="li"> Désactiver toutes les cases dans <code>Options</code> » <code>Signature</code>, excepté <code>Signer les messages <abbr title="Authentification unique (Single Sign On)">SSO</abbr></code> qui doit être activée</div>
</li>
<li class="level1"><div class="li"> Selectionner <code>Metadata</code>, et déprotéger le champ pour y mettre :</div>
</li>
</ol>
<pre class="code file xml"><span class="sc3"><span class="re1">&lt;md:EntityDescriptor</span> <span class="re0">entityID</span>=<span class="st0">"google.com"</span> <span class="re0">xmlns</span>=<span class="st0">"urn:oasis:names:tc:SAML:2.0:metadata"</span> <span class="re0">xmlns:ds</span>=<span class="st0">"http://www.w3.org/2000/09/xmldsig#"</span> <span class="re0">xmlns:md</span>=<span class="st0">"urn:oasis:names:tc:SAML:2.0:metadata"</span><span class="re2">&gt;</span></span>
<span class="sc3"><span class="re1">&lt;SPSSODescriptor</span> <span class="re0">protocolSupportEnumeration</span>=<span class="st0">"urn:oasis:names:tc:SAML:2.0:protocol"</span><span class="re2">&gt;</span></span>
<span class="sc3"><span class="re1">&lt;AssertionConsumerService</span> <span class="re0">Binding</span>=<span class="st0">"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"</span> <span class="re0">Location</span>=<span class="st0">"https://www.google.com/a/mydomain.org/acs"</span> <span class="re0">index</span>=<span class="st0">"1"</span> <span class="re2">/&gt;</span></span>
<span class="sc3"><span class="re1">&lt;NameIDFormat<span class="re2">&gt;</span></span></span>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress<span class="sc3"><span class="re1">&lt;/NameIDFormat<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;/SPSSODescriptor<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;/md:EntityDescriptor<span class="re2">&gt;</span></span></span></pre>
<div class="noteimportant">Changer <strong>mydomain.org</strong> (dans <code>AssertionConsumerService</code> markup, parameter <code>Location</code>) en votre domaine Google Apps. Adapter également l' "entityID" pour qu'elle corresponde à l'émetteur de l'assertion : google.com/a/mydomain.org
</div>
</div><!-- EDIT6 SECTION "New Service Provider" [2408-3803] -->
<h3 class="sectionedit7" id="application_menu">Menu application</h3>
<div class="level3">
<p>
Il est possible d'ajouter un lien dans le <a href="../portalmenu.html#categories_and_applications" class="wikilink1" title="documentation:2.0:portalmenu">menu application</a> pour afficher Google Apps.
</p>
<p>
Certains paramètres doivent être adaptés :
</p>
<ul>
<li class="level1"><div class="li"> <strong>Address</strong> : indiquer une des <abbr title="Uniform Resource Locator">URL</abbr> de Google Apps (chaque application Google Apps produit une <abbr title="Uniform Resource Locator">URL</abbr> distincte), par exemple <a href="http://www.google.com/calendar/hosted/mydomain.org/render" class="urlextern" title="http://www.google.com/calendar/hosted/mydomain.org/render" rel="nofollow">http://www.google.com/calendar/hosted/mydomain.org/render</a></div>
</li>
<li class="level1"><div class="li"> <strong>Display</strong> : comme Google Apps n'est pas une application protégée, indiquer <code>On</code> pour toujours l'afficher</div>
</li>
</ul>
<div class="noteimportant">Mettre <strong>mydomain.org</strong> dans le domaine Google Apps
</div>
</div><!-- EDIT7 SECTION "Application menu" [3804-4317] -->
<h3 class="sectionedit8" id="logout">Déconnexion</h3>
<div class="level3">
<p>
Google Apps ne supporte pas le Single Logout (SLO).
</p>
<p>
Google Apps ne dispose pas de paramètre de configuration pour rediriger les utilisateurs vers une <abbr title="Uniform Resource Locator">URL</abbr> spécifique après la déconnexion Google Apps (voir <a href="#google_apps_control_panel" title="documentation:2.0:applications:googleapps ↵" class="wikilink1">Google Apps control panel</a>).
</p>
<p>
Pour gérer l'autre voie (<abbr title="LemonLDAP::NG">LL::NG</abbr> → Google Apps), ajouter une <a href="../logoutforward.html" class="wikilink1" title="documentation:2.0:logoutforward">règle de redirection après déconnexion</a>:
</p>
<pre class="code">GoogleApps =&gt; http://www.google.com/calendar/hosted/mydomain.org/logout</pre>
<div class="noteimportant">Mettre <strong>mydomain.org</strong> dans le domaine Google Apps
</div>
</div><!-- EDIT8 SECTION "Logout" [4318-] -->
</div>
</body>
</html>