tag:linuxfr.org,2005:/tags/sso/publicLinuxFr.org : les contenus étiquetés avec « sso »2022-03-15T20:28:07+01:00/favicon.pngtag:linuxfr.org,2005:Bookmark/44212022-03-15T20:28:07+01:002022-03-15T20:28:07+01:00Le fonctionnement du chiffrement dans matrix, ou comment allier E2EE et SSO<a href="https://webrtchacks.com/how-does-webrtc-end-to-end-encryption-work-matrix-org-example-dave-baker/">https://webrtchacks.com/how-does-webrtc-end-to-end-encryption-work-matrix-org-example-dave-baker/</a> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/127190/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/azmeuk/liens/le-fonctionnement-du-chiffrement-dans-matrix-ou-comment-allier-e2ee-et-sso#comments">ouvrir dans le navigateur</a>
</p>
azmeukhttps://linuxfr.org/nodes/127190/comments.atomtag:linuxfr.org,2005:Diary/387532019-11-03T19:04:19+01:002019-11-04T15:32:42+01:00Sortie de Glewlwyd 2.0, serveur SSOLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Glewlwyd, serveur SSO polyvalent, est maintenant disponible en version 2.0 sur les interwebs!</p>
<p><a href="https://babelouest.github.io/glewlwyd/">https://babelouest.github.io/glewlwyd/</a></p>
<p>Je reprends une partie de <a href="//linuxfr.org/users/superzen/journaux/glewlwyd-2-0-serveur-sso-est-maintenant-en-rc1">l'ancien journal</a> écrit pour la sortie de la RC2, mais celui-ci est bien plus détaillé pour les curieux.</p>
<h2 id="toc-installer">Installer</h2>
<h3 id="toc-paquets-pour-certaines-distributions">Paquets pour certaines distributions</h3>
<p>Des paquets pour certaines distributions Linux sont disponibles ici: <a href="https://github.com/babelouest/glewlwyd/releases/tag/v2.0.0">https://github.com/babelouest/glewlwyd/releases/tag/v2.0.0</a></p>
<h3 id="toc-image-docker">Image Docker</h3>
<p>Une image Docker est disponible ici pour tester rapidement, ou pour utiliser en vrai, juste en modifiant une option: <a href="https://hub.docker.com/r/babelouest/">https://hub.docker.com/r/babelouest/</a></p>
<h3 id="toc-installation-manuelle-avec-cmake">Installation manuelle avec CMake</h3>
<p>Sinon le manuel d'installation décrit comment recompiler ca sans stress: <a href="https://github.com/babelouest/glewlwyd/blob/master/docs/INSTALL.md">https://github.com/babelouest/glewlwyd/blob/master/docs/INSTALL.md</a></p>
<h2 id="toc-présentation">Présentation</h2>
<p>Glewlwyd est un serveur d'authentification unique, autrement appelé Serveur SSO, qui implémente les protocoles <a href="https://fr.wikipedia.org/wiki/OAuth">OAuth2</a> et <a href="https://fr.wikipedia.org/wiki/OpenID_Connect">OpenID Connect</a>.</p>
<p>Le backend est écrit en C, ce qui lui permet de fonctionner sur tout type de machine sans trop bouffer de ressources.</p>
<p>Il gère les utilisateurs et les clients stockés en base de données ou dans un LDAP.</p>
<p>Il nécessite une base de données pour fonctionner, au choix SQLite3, MariaDB/MySQL ou PostgreSQL.</p>
<h3 id="toc-schémas-dauthentification">Schémas d'authentification</h3>
<p>Il gère également les schémas d'authentification multiples:</p>
<ul>
<li><a href="https://en.wikipedia.org/wiki/HMAC-based_One-time_Password_algorithm">HOTP/TOTP</a></li>
<li>
<a href="https://fr.wikipedia.org/wiki/WebAuthn">WebAuthn</a>, supporte au moins:
<ul>
<li>les <a href="https://www.yubico.com/">Yubikeys</a>
</li>
<li>les machines sous Android 7+ en s'authentifiant par code secret ou empreinte digitale</li>
</ul>
</li>
<li>Mot de passe à usage unique envoyé par courriel</li>
<li>
<a href="https://fr.wikipedia.org/wiki/Transport_Layer_Security#Authentification_par_certificat_num%C3%A9rique">Certificats TLS</a> avec possibilité d'émission de certificat <a href="https://fr.wikipedia.org/wiki/PKCS12">PKCS#12</a>
</li>
</ul>
<h3 id="toc-architecture">Architecture</h3>
<p>Et il utilise une architecture à base de <a href="https://github.com/babelouest/glewlwyd/blob/master/src/scheme/README.md">greffons</a> pour ajouter, modifier ou supprimer plus facilement les backends ou sont stockés les utilisateurs ou les clients, les schémas d'authentification ou encore les plugins comme OAuth2.</p>
<h2 id="toc-protocoles-supportés">Protocoles supportés</h2>
<h3 id="toc-oauth2">OAuth2</h3>
<p>OAuth2 est le successeur d'OAuth, et est un framework de délégation d'authentification qui permet à un client de se connecter à un ou plusieurs serveurs de ressources au nom d'un utilisateur.</p>
<p>Le principe est le suivant: le client redirige l'utilisateur vers le serveur d'authentification unique en notifiant au serveur d'authentification qui est le client qui demande, et quels accès il demande. L'utilisateur s'authentifie, autorise ou non les accès au client selon ses droits, puis le serveur d'authentification redirige l'utilisateur vers le client avec une clé. Cette clé permet enfin au client d'accéder aux ressources demandées initialement.</p>
<h3 id="toc-openid-connect">OpenID Connect</h3>
<p>La fondation OpenID est partie du standard OAuth2 et de ses propres expériences et solutions pour proposer le protocole OpenID Connect.<br>
OpenID Connect est issu de OAuth2 mais n'en est pas pour autant interopérable. En fait, il a pris certains aspects d'OAuth2 qui l'intéresse, ignore des aspects qui ne l'intéresse pas (response types <code>Resource Owner Password Credentials Grant</code> et <code>Client Credentials Grant</code>), et a ajouté de nouvelles fonctionnalités pour étendre les possibilités.</p>
<p>La grosse nouveauté d'OpenID Connect (mais pas la seule) est le <code>id_token</code>, c'est un <a href="https://fr.wikipedia.org/wiki/JSON_Web_Token">JWT</a> permettant au client d'identifier l'utilisateur connecté et d'accéder à des informations de l'utilisateur comme son nom, son adresse courriel, son adresse postale, etc.</p>
<h3 id="toc-autorisation">Autorisation</h3>
<p>Glewlwyd fait de l'authentification mais aussi de l'autorisation car les <code>access token</code> générés par les plugins OAuth2 ou OpenID Connect sont également des JWT contenant une information minimale permettant d'identifier l'utilisateur connecté, ainsi que les niveaux d'accès autorisés par le serveur et l'utilisateur.</p>
<p><a href="https://github.com/babelouest/glewlwyd/blob/master/docs/OAUTH2.md#access-token-format">https://github.com/babelouest/glewlwyd/blob/master/docs/OAUTH2.md#access-token-format</a></p>
<h2 id="toc-implémentations-existantes">Implémentations existantes</h2>
<p>Beaucoup de fournisseurs de services en ligne proposent leur propre SSO: <a href="https://developers.google.com/identity/">Google</a>, <a href="https://azure.microsoft.com/en-us/resources/videos/overview-of-single-sign-on/">Microsoft Azure</a>, <a href="https://developer.apple.com/sign-in-with-apple/">Apple</a>, <a href="https://developer.twitter.com/en/docs/twitter-for-websites/log-in-with-twitter/login-in-with-twitter.html">Twitter</a>, <a href="https://aws.amazon.com/fr/single-sign-on/">AWS</a>, la liste est longue.</p>
<p>Pour les libristes, il existe également beaucoup de produits libres que l'on peut utiliser chez soi: <a href="https://www.gluu.org/">Gluu</a>, <a href="https://www.keycloak.org/">Keycloak</a> notamment pour ceux que je connais un peu.</p>
<p>Glewlwyd sans vouloir concurrencer les autres, veut apporter une alternative simple à installer et à utiliser, et propose des outils pour l'étendre plus facilement à ses besoins.</p>
<div><a href="https://linuxfr.org/users/superzen/journaux/sortie-de-glewlwyd-2-0-serveur-sso.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/118526/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/superzen/journaux/sortie-de-glewlwyd-2-0-serveur-sso#comments">ouvrir dans le navigateur</a>
</p>
Babelouesthttps://linuxfr.org/nodes/118526/comments.atomtag:linuxfr.org,2005:Diary/386562019-09-08T22:27:29+02:002019-09-08T22:27:29+02:00Glewlwyd 2.0, serveur SSO, est maintenant en RC1Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li>
<ul>
<li>
<a href="#toc-principes">Principes</a><ul>
<li><a href="#toc-serveur-dauthentification-unique">Serveur d'Authentification Unique</a></li>
<li><a href="#toc-oauth2">OAuth2</a></li>
<li><a href="#toc-openid-connect">OpenID Connect</a></li>
<li><a href="#toc-impl%C3%A9mentations-existantes">Implémentations existantes</a></li>
</ul>
</li>
<li>
<a href="#toc-fonctionnement">Fonctionnement</a><ul>
<li><a href="#toc-backends-user-et-client">Backends user et client</a></li>
<li>
<a href="#toc-modules-dauthentification">Modules d'authentification</a><ul>
<li><a href="#toc-totphotp">TOTP/HOTP</a></li>
<li><a href="#toc-webauthn">Webauthn</a></li>
<li><a href="#toc-envoi-dun-code-%C3%A0-ton-adresse-courriel">Envoi d'un code à ton adresse courriel</a></li>
<li><a href="#toc-certificat-tls">Certificat TLS</a></li>
</ul>
</li>
<li><a href="#toc-plugins">Plugins</a></li>
</ul>
</li>
<li><a href="#toc-conclusion">Conclusion</a></li>
</ul>
</li>
</ul>
<p>Glewlwyd est un serveur d'authentification unique. La nouvelle version 2.0 entre maintenant en Release Candidate et propose plein de fonctionnalités.</p>
<p><a href="https://github.com/babelouest/glewlwyd">https://github.com/babelouest/glewlwyd</a></p>
<p>Il implémente les protocoles suivants:<br>
- OpenID Connect<br>
- OAuth2</p>
<p>Ainsi que les schémas d'authentification:<br>
- Mot de passe à l'ancienne<br>
- TOTP/HOTP<br>
- Webauthn avec le support de FIDO2 et Android Safetnyet<br>
- Envoi de code aléatoire par e-mail<br>
- Certificat TLS</p>
<p>Il peut se connecter à un ou plusieurs serveurs LDAP ainsi que une ou plusieurs bases de données pour le stockage des utilisateurs. Il permet aussi de faire du passwordless c'est à dire de se débarrasser du mot de passe pour s'authentifier.</p>
<h3 id="toc-principes">Principes</h3>
<h4 id="toc-serveur-dauthentification-unique">Serveur d'Authentification Unique</h4>
<p>Un serveur d'<a href="https://fr.wikipedia.org/wiki/Authentification_unique">authentification unique</a> ou Single-Sign-On permet de centraliser l'authentification pour plusieurs services au même endroit.<br>
Lorsque l'on implémente ou qu'on gère des services webs, on se rend compte que l'authentification des requêtes pour accéder aux services est non seulement lourde, mais en plus peut être dupliquée autant de fois qu'on a de services différents parfois, ce qui ajoute du code, des bugs, de la maintenance, et peut limiter l'évolution du reste.</p>
<p>Le besoin est pourtant simple à formuler:</p>
<blockquote>
<p>Je veux que seules les personnes autorisées puissent accéder à mes services web.</p>
</blockquote>
<p>Des gens se sont donc penchés sur la question depuis pas mal d'années et plusieurs solutions et architectures ont émergé depuis.</p>
<h4 id="toc-oauth2">OAuth2</h4>
<p>OAuth2 est le successeur d'OAuth, et est un framework de délégation d'authentification qui permet à un client de se connecter à un ou plusieurs serveurs de ressources au nom d'un utilisateur.</p>
<p>Le principe est le suivant: le client redirige l'utilisateur vers le serveur d'authentification unique en notifiant au serveur d'authentification qui est le client qui demande, et quels accès il demande. L'utilisateur s'authentifie, autorise ou non les accès au client selon ses droits, puis le serveur d'authentification redirige l'utilisateur vers le client avec une clé. Cette clé permet enfin au client d'accéder aux ressources demandées initialement.</p>
<p>Pour répondre à plusieurs besoins distincts, OAuth2 propose plusieurs méthodes d'authentification appellées <code>response type</code>.<br>
Il propose également les <code>access token</code> qui sont les clés proprement dites pour accéder aux ressources et les <code>refresh token</code> qui permettent de demander un nouvel <code>access token</code> quand le précédent a expiré.</p>
<p>OAuth2 est un standard volontairement incomplet. Pas dans le sens tout pourri, mais qui laisse volontairement des zones d'ombre pour permettre de s'adapter aux besoins.</p>
<p>Par exemple, il ne spécifie pas comment le serveur d'authentification doit identifier l'utilisateur. Ca peut être par un cookie de session, par un certificat TLS, par autre chose, etc.<br>
Également, il dit que l'authentification des access tokens est en dehors de la portée du protocole OAuth2.</p>
<h4 id="toc-openid-connect">OpenID Connect</h4>
<p>La fondation OpenID est partie du standard OAuth2 et de ses propres expériences et solutions pour proposer le protocole OpenID Connect.<br>
OpenID Connect est issu de OAuth2 mais n'en est pas pour autant interopérable. En fait, il a pris certains aspects d'OAuth2 qui l'intéresse, s'est débarrassé des aspects qui ne l'intéresse pas, et a ajouté de nouvelles fonctionnalités pour étendre les possibilités.</p>
<p>La grosse nouveauté d'OpenID Connect (mais pas la seule) est le <code>id token</code>, c'est un <a href="https://fr.wikipedia.org/wiki/JSON_Web_Token">JWT</a> permettant au client d'identifier l'utilisateur connecté et d'accéder à des informations de l'utilisateur comme son nom, son adresse courriel, son adresse postale, etc.</p>
<p>Il est également plus structuré car il propose des webservices supplémentaires et normalisés comme le <code>userinfo</code> qui permet d'accéder à des informations d'un utilisateur comme pour un <code>id token</code> ou le webservice disovery <code>/.well-known/openid-configuration</code> permettant de récupérer la configuration publique du serveur et donc de faciliter la configuration d'un nouveau client en lui donnant la marche à suivre pour connecter un serveur OpenID Connect ainsi que les fonctionnalités qu'il supporte.</p>
<h4 id="toc-implémentations-existantes">Implémentations existantes</h4>
<p>Beucoup de fournisseurs de services en ligne proposent leut propre SSO: <a href="https://developers.google.com/identity/">Google</a>, <a href="https://azure.microsoft.com/en-us/resources/videos/overview-of-single-sign-on/">Microsoft Azure</a>, <a href="https://developer.apple.com/sign-in-with-apple/">Apple</a>, <a href="https://developer.twitter.com/en/docs/twitter-for-websites/log-in-with-twitter/login-in-with-twitter.html">Twitter</a>, <a href="https://aws.amazon.com/fr/single-sign-on/">AWS</a>, la liste est longue.</p>
<p>Pour les libristes, il existe également beaucoup de produits libres que l'on peut utiliser chez soi: <a href="https://www.gluu.org/">Gluu</a>, <a href="https://www.keycloak.org/">Keycloak</a> notamment pour ceux que je connais un peu.</p>
<h3 id="toc-fonctionnement">Fonctionnement</h3>
<p>Voici donc la nouvelle version de mon serveur SSO que j'avais <a href="//linuxfr.org/users/superzen/journaux/glewlwyd-serveur-d-authentification-oauth2">déjà présenté</a> dans sa version précédente.<br>
Le backend est écrit en C ce qui permet d'avoir une application légère et rapide. Il supporte des bases de données SQLite3, MySQL/MariaDB ou PostgreSQL. C'est du GPL et c'est libre!</p>
<p>À l'époque, Glewlwyd supportait seulement le protocole OAuth2 et une seule instance de connexion LDAP et base de données. Après quelques retours et des envies de tester des trucs nouveaux, j'ai décidé de tout remettre à plat et de faire la version 2.0 avec une architecture modulaire.</p>
<p>L'idée de cette architecture est de séparer et de cloisonner certains aspects de l'application, afin de rendre le code plus facile à écrire, débugger, et maintenir. On peut donc écrire des modules pour:<br>
- Gérer les utilisateurs<br>
- Gérer les clients<br>
- Gérer les méthodes d'authentification pour les utilisateurs (Les fameux N-Factor)<br>
- Gérer les protocoles d'authentification voire en implémenter des nouveaux</p>
<p>Glewlwyd permet donc d'authentifier un utilisateur et de donner à un client un accès aux ressources autorisées par l'utilisateur. Il permet également de rajouter des facteurs d'authentification pour des niveaux d'accès. Ainsi, on peut dire que le niveau d'accès X requiert le mot de passe <em>et</em> le TOTP, le niveau d'accès Y seulement le mot passe, et le niveau d'accès Z le TOTP <em>ou</em> la yubikey.</p>
<h4 id="toc-backends-user-et-client">Backends user et client</h4>
<p>Les utilisateurs et les clients (qui au final sont des utilisateurs particuliers) peuvent être stockés dans la base de données, ou une autre base de données ailleurs, ou dans un serveur LDAP (en écriture si ca vous tente), voire plusieurs. On peut ajouter autant d'instances de backends qu'on veut pour accéder aux utilisateurs. Le backend gère l'authentification par mot de passe, et puis c'est tout.</p>
<h4 id="toc-modules-dauthentification">Modules d'authentification</h4>
<p>Pour rajouter des couches de blindage à l'authentification, on peut rajouter des facteurs supplémentaires.</p>
<p>Les facteurs actuellement implémentés sont:</p>
<h5 id="toc-totphotp">TOTP/HOTP</h5>
<p>Le One-Time Password ou mot de passe à usage unique, dans sa version HOTP (avec un compteur qui s'incrémente à chaque accès réussi), ou TOTP (basé sur l'heure, donc change toutes les x secondes).<br>
Comment ca marche? Tu scannes le QR code de la page OTP de ton profil Glewlwyd dans ton application OTP préférée, ou tu recopies les paramètres, et paf!</p>
<h5 id="toc-webauthn">Webauthn</h5>
<p>La <a href="https://www.w3.org/TR/webauthn/">nouvelle API Javascript</a> permet de faire de l'authentification dans ton navigateur avec un composant externe. C'est supporté dans Firefox et Chrom[e|ium]. Tu dois utiliser un outil tiers qui signe une attestation permettant au serveur de vérifier que c'est le bon utilisateur qui se connecte. Tu sais que c'est le bon utilisateur car il a préalablement enregistré son composant Webauthn dans son profil Glewlwyd.</p>
<p>Ca marche avec les <a href="https://www.yubico.com/products/yubikey-hardware/">Yubikey</a> (FIDO2 pour les intimes) ou le <a href="https://developer.android.com/training/safetynet/attestation">téléphone Android</a> (Android SafetyNet).</p>
<p>D'autres formats d'authentification existent comme TPM, Packed ou Android Key mais comme je n'ai sous la main que des machins android ou des Yubikeys, je n'ai pas pu faire les autres. Avis aux amateurs!</p>
<h5 id="toc-envoi-dun-code-à-ton-adresse-courriel">Envoi d'un code à ton adresse courriel</h5>
<p>Simple, efficace, mais pas mal plus contraignant, parce que faut avoir accès à son courriel déjà, et faut avoir confiance dans le fait qu'il n'est pas compromis.</p>
<h5 id="toc-certificat-tls">Certificat TLS</h5>
<p>J'avoue que celui-là c'est plus un défi technologique qu'autre chose, en plus de trouver la méthode contraignante: tu dois sauvegarder le certificat dans ton navigateur, en demander un nouveau quand l'autre a expiré.<br>
De plus, je ne connais pas assez le standard donc ca se peut que des trucs importants m'aient échappé. J'aimerais beaucoup un avis éclairé sur celui-là, en toute modestie.</p>
<h4 id="toc-plugins">Plugins</h4>
<p>Comme je l'expliquais plus haut, les protocoles OAuth2 et OpenID Connect sont supportés. Comme dans la première version, les access tokens fournis sont des JWT.</p>
<p>Un JWT, ou <a href="https://fr.wikipedia.org/wiki/JSON_Web_Token">JSON Web Token</a> est un token signé, permettant d'incorporer au token des informations, et la signature garantit que l'information n'a pas été modifiée entre le serveur et le client.</p>
<p>C'est donc la méthode que j'ai choisie, ca permet au serveur de ressource qui mange le token de ne pas avoir à demander au serveur d'authentification si le token est valide ou non, il peut le vérifier tout seul.</p>
<p>Dans Glewlwyd, un plugin est vu plus ou moins comme une application autonome qui peut créer ses propres webservices pour ses propres besoins, tout en ayant accès à certaines ressources comme les utilisateurs ou les sessions.</p>
<p>Je ne l'ai pas encore fait mais si par exemple je veux faire un service pour permettre aux nouveaux utilisateurs de s'enregistrer ou un service <code>J'ai perdu mon mot de passe</code>, ca ira dans un plugin plutôt que dans l'application elle-même.</p>
<h3 id="toc-conclusion">Conclusion</h3>
<p>Avis aux curieux. L'application rentre en Release Candidate maintenant et ca serait cool d'avoir des retours et des avis.</p>
<div><a href="https://linuxfr.org/users/superzen/journaux/glewlwyd-2-0-serveur-sso-est-maintenant-en-rc1.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/118067/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/superzen/journaux/glewlwyd-2-0-serveur-sso-est-maintenant-en-rc1#comments">ouvrir dans le navigateur</a>
</p>
Babelouesthttps://linuxfr.org/nodes/118067/comments.atomtag:linuxfr.org,2005:Post/401502019-05-21T17:17:42+02:002019-05-21T17:17:42+02:00LemonLdap (HTTP Basic authentication)<p>Bonjour je viens vers vous pour vous demander si vous avez déjà utilisé le mode http basic authentication de LemponLdap !</p>
<p>je veux implémenter un cas de figure assez simple:</p>
<p>1) demande par la client d'une appli via le portail de lemonldap après s’être authentifié.<br>
2) après avoir configuré Lemonldap pour qu'il fasse du HTTP Basic authentication injecte dans le header http le login et le mot de passe de l’utilisateur la base 64 <br>
3) L'appli examine le header, et décode les infos en base 64.</p>
<p>Il suffit donc de déclarer cet en-tête pour l'hôte virtuel dans le gestionnaire. Par exemple, pour transférer la connexion (<img style="display: inline; max-height: 1em;" class="mathjax" src="data:image/svg+xml;base64,PHN2ZyB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlu%0AayIgdmlld0JveD0iMCAtNzEyLjI3NzQ4OTAwMjU0MSA4MjQ1IDk0Ni41NTQ5%0ANzgwMDUwODE4IiBzdHlsZT0id2lkdGg6IDE5LjE1N2V4OyBoZWlnaHQ6IDIu%0AMTY5ZXg7IHZlcnRpY2FsLWFsaWduOiAtMC42MDJleDsgbWFyZ2luOiAxcHgg%0AMHB4OyBwb3NpdGlvbjogc3RhdGljOyIgeG1sbnM9Imh0dHA6Ly93d3cudzMu%0Ab3JnLzIwMDAvc3ZnIj48ZGVmcyBpZD0iTWF0aEpheF9TVkdfZ2x5cGhzIj48%0AcGF0aCBpZD0iU1RJWFdFQk1BSU5JLTc1IiBzdHJva2Utd2lkdGg9IjEwIiBk%0APSJNNDYxIDExOWwxNCAtOWMtNjUgLTk5IC05MSAtMTE5IC0xMzggLTExOWMt%0AMzAgMCAtNDggMTcgLTQ4IDQ4YzAgMjIgMTMgODkgNDUgMTk3Yy0xMTggLTE5%0ANCAtMTY4IC0yNDcgLTIzOSAtMjQ3Yy0zNSAwIC01MyAxNiAtNTMgNTNjMCAx%0AOSA5IDU1IDI3IDEyOGwzNSAxMzljOCAzMyAxNCA1OSAxNCA2N2MwIDcgLTUg%0AMTUgLTExIDE4Yy05IDUgLTEyIDYgLTUwIDZ2MTRjNTcgNyA5MyAxNCAxNTAg%0AMjdsNCAtM2wtODkgLTM1NSBjLTEgLTMgLTMgLTEyIC0zIC0xNmMwIC0xNSA1%0AIC0yNSAyMCAtMjVjMzQgMCA4MCA1MyAxNDIgMTQ3YzQ3IDcxIDYxIDEwOSAx%0AMTAgMjQzaDc0bC03OSAtMjk5Yy01IC0xOSAtMTkgLTY2IC0xOSAtNzhjMCAt%0AMTEgNCAtMTcgMTEgLTE3YzE2IDAgMzIgMTQgODMgODFaIj48L3BhdGg+PHBh%0AdGggaWQ9IlNUSVhXRUJNQUlOSS02OSIgc3Ryb2tlLXdpZHRoPSIxMCIgZD0i%0ATTI2NCA1OTljMCAtMjggLTIzIC01MSAtNDkgLTUxYy0yOSAwIC00OCAyMSAt%0ANDggNTNjMCAzMSAyMCA1MyA0NyA1M3M1MCAtMjYgNTAgLTU1ek0yMjIgMTE0%0AbDEzIC0xMWMtNTUgLTg0IC04NyAtMTE0IC0xMzcgLTExNGMtMzMgMCAtNDkg%0AMTggLTQ5IDU1YzAgMjAgNyA1NSAyMiAxMTFsNDggMTc3YzUgMTggOSAzNiA5%0AIDQ0YzAgMjAgLTEwIDIzIC02NCAyNHYxNmMzOSAzIDU5IDYgMTYwIDI1bDQg%0ALTNsLTk0IC0zNDMgYy01IC0xNyAtMTAgLTMwIC0xMCAtNDRjMCAtMTAgNiAt%0AMTUgMTQgLTE1YzE3IDAgNDEgMjEgODQgNzhaIj48L3BhdGg+PHBhdGggaWQ9%0AIlNUSVhXRUJNQUlOSS02NCIgc3Ryb2tlLXdpZHRoPSIxMCIgZD0iTTUyMSA2%0AODNsNiAtNmwtMzkgLTE1MmwtNjAgLTIxOWMtMzEgLTExNCAtNjUgLTIzMCAt%0ANjUgLTI0NmMwIC0xMiA1IC0yMCAxOCAtMjBjMTcgMCAyOCA5IDgyIDcxbDEy%0AIC0xMGMtNDkgLTczIC05NyAtMTE0IC0xNDcgLTExNGMtMjYgMCAtNDEgMTgg%0ALTQxIDQ1YzAgMjMgMiAzOSAxMyA4OWMtNTkgLTk5IC0xMTAgLTEzMiAtMTc4%0AIC0xMzJjLTY1IDAgLTEwNyA0MSAtMTA3IDExN2MwIDE2MiAxNjIgMzM1IDI5%0AMiAzMzUgYzQyIDAgNTkgLTE5IDY1IC01OGgxbDQ1IDE2M2MxNSA1MyAxNCA1%0ANyAxNCA3MWMwIDIxIC05IDI0IC02NCAyNnYxN2M2NCA2IDEwMCAxMiAxNTMg%0AMjN6TTM1NiAzNjFjMCAzNiAtMjQgNTcgLTQ3IDU3Yy0yOCAwIC02MyAtMTcg%0ALTkxIC00NmMtNjYgLTcwIC0xMTYgLTE3OSAtMTE2IC0yNjJjMCAtNDYgMjMg%0ALTczIDU4IC03M2M5MiAwIDE5NiAxNzIgMTk2IDMyNFoiPjwvcGF0aD48cGF0%0AaCBpZD0iU1RJWFdFQk1BSU4tMjkiIHN0cm9rZS13aWR0aD0iMTAiIGQ9Ik0y%0AOSA2NjBsMTIgMTZjMTUzIC05MiAyNDQgLTI1OSAyNDQgLTQyOWMwIC0xODUg%0ALTg4IC0zMjcgLTI0NyAtNDI0bC05IDE2YzE0MiAxMTcgMTcwIDIxMSAxNzAg%0ANDA1YzAgMTg3IC0yNSAzMDIgLTE3MCA0MTZaIj48L3BhdGg+PHBhdGggaWQ9%0AIlNUSVhXRUJNQUlOSS02NSIgc3Ryb2tlLXdpZHRoPSIxMCIgZD0iTTM1OCAx%0AMDlsMTIgLTEyYy01NyAtNzAgLTEyMSAtMTA4IC0yMDQgLTEwOGMtODEgMCAt%0AMTM1IDU0IC0xMzUgMTM3YzAgMTU1IDE0OSAzMTUgMjk5IDMxNWM1MyAwIDgy%0AIC0yNiA4MiAtNjhjMCAtODYgLTEwNSAtMTY0IC0yODQgLTE4N2MtMTAgLTIw%0AIC0xMCAtNDYgLTEwIC02MWMwIC01NSAzNyAtOTEgOTMgLTkxYzQ0IDAgNzUg%0AMTYgMTQ3IDc1ek0xNTIgMjUybC0xNyAtNDRjODYgMjEgMTI0IDM5IDE2MSA3%0ANGMzMSAzMCA1MCA2NiA1MCA5NyBjMCAyNCAtNyAzOSAtMzUgMzljLTU3IDAg%0ALTEyNSAtNzcgLTE1OSAtMTY2WiI+PC9wYXRoPjxwYXRoIGlkPSJTVElYV0VC%0ATUFJTkktNzQiIHN0cm9rZS13aWR0aD0iMTAiIGQ9Ik0yOTYgNDI4bC01IC0z%0AMmgtODRsLTg3IC0zMjhjLTEgLTQgLTIgLTExIC0yIC0xNGMwIC0xMyA2IC0x%0ANiAxNSAtMTZjMTYgMCAzMiAxNiA4MSA3OWwxMyAtN2MtNjAgLTkyIC05MSAt%0AMTIxIC0xNDMgLTEyMWMtMjcgMCAtNDYgMTIgLTQ2IDM3YzAgMTEgOCA0MiAx%0ANiA3NGw3OCAyOTZoLTc1Yy0xIDMgLTEgNiAtMSA2YzAgMTEgOSAyMCAzMyAy%0ANWMzMiA3IDk3IDU2IDEzMyAxMTBjNCA2IDEwIDkgMTQgOWM2IDAgOSAtMyA5%0AIC04IGMwIDAgMCAtNSAtMSAtN2wtMjggLTEwM2g4MFoiPjwvcGF0aD48cGF0%0AaCBpZD0iU1RJWFdFQk1BSU5JLTZDIiBzdHJva2Utd2lkdGg9IjEwIiBkPSJN%0AMjc5IDY3OGwtMTUzIC01ODVjLTUgLTE4IC04IC0zNSAtOCAtNDNjMCAtMTIg%0ANyAtMTggMTcgLTE4YzE1IDAgMzggMTYgNjcgNTdsMjUgMzVsMTQgLTEwYy02%0AMCAtOTUgLTk3IC0xMjUgLTE1MSAtMTI1Yy0zMiAwIC00OSAxOSAtNDkgNTZj%0AMCA4IDEgMjAgNCAzMGwxMzcgNTI0YzMgMTAgMyAxNiAzIDE5YzAgMTIgLTE3%0AIDIyIC00OSAyMmgtMTh2MTZjNTkgNyA5NiAxNCAxNTUgMjdaIj48L3BhdGg+%0APHBhdGggaWQ9IlNUSVhXRUJNQUlOSS02NSIgc3Ryb2tlLXdpZHRoPSIxMCIg%0AZD0iTTM1OCAxMDlsMTIgLTEyYy01NyAtNzAgLTEyMSAtMTA4IC0yMDQgLTEw%0AOGMtODEgMCAtMTM1IDU0IC0xMzUgMTM3YzAgMTU1IDE0OSAzMTUgMjk5IDMx%0ANWM1MyAwIDgyIC0yNiA4MiAtNjhjMCAtODYgLTEwNSAtMTY0IC0yODQgLTE4%0AN2MtMTAgLTIwIC0xMCAtNDYgLTEwIC02MWMwIC01NSAzNyAtOTEgOTMgLTkx%0AYzQ0IDAgNzUgMTYgMTQ3IDc1ek0xNTIgMjUybC0xNyAtNDRjODYgMjEgMTI0%0AIDM5IDE2MSA3NGMzMSAzMCA1MCA2NiA1MCA5NyBjMCAyNCAtNyAzOSAtMzUg%0AMzljLTU3IDAgLTEyNSAtNzcgLTE1OSAtMTY2WiI+PC9wYXRoPjxwYXRoIGlk%0APSJTVElYV0VCTUFJTkktNkQiIHN0cm9rZS13aWR0aD0iMTAiIGQ9Ik03MDQg%0AMTA1bC01IC03Yy01MyAtNzQgLTk3IC0xMDcgLTE0NCAtMTA3Yy0yNiAwIC00%0AMCAxNiAtNDAgNDZjMCAxMCAzIDI3IDEzIDY2bDU4IDIyN2M1IDIwIDcgMzMg%0ANyAzOGMwIDEyIC05IDIxIC0yMCAyMWMtMzAgMCAtODEgLTQ3IC0xMzEgLTEx%0AN2MtNDkgLTY5IC02OSAtMTE4IC0xMDggLTI3MmgtNzVsMjcgOTNjNDQgMTUy%0AIDY4IDI1OCA2OCAyNzFjMCAxNiAtOSAyNSAtMjIgMjVjLTM0IDAgLTkzIC01%0AOCAtMTQ5IC0xNDMgYy0zNCAtNTIgLTQ4IC04OCAtOTYgLTI0NmgtNzVsNDMg%0AMTQ0YzQwIDEzMyA1NSAyMTYgNTUgMjI4YzAgMTUgLTE0IDIyIC00MSAyMmgt%0AMjV2MTZsMTYyIDMxbDMgLTJsLTU4IC0yMDljODkgMTQ1IDE1OSAyMTEgMjIw%0AIDIxMWM0MCAwIDYwIC0yNCA2MCAtNjBjMCAtMTkgLTEzIC03NSAtNDAgLTE1%0AMmM3MCAxMTEgMTExIDE2MSAxNjAgMTkyYzI0IDE1IDQzIDIwIDYzIDIwYzM3%0AIDAgNTggLTI3IDU4IC02M2MwIC03IC0yIC0yMyAtMyAtMjggbC02OCAtMjUx%0AYy02IC0yMyAtMTAgLTQxIC0xMCAtNDVjMCAtMTEgNCAtMTYgMTIgLTE2YzE3%0AIDAgMzUgMTYgNjUgNTNsMjEgMjZaIj48L3BhdGg+PHBhdGggaWQ9IlNUSVhX%0ARUJNQUlOSS02RiIgc3Ryb2tlLXdpZHRoPSIxMCIgZD0iTTQ2OCAzMDFjMCAt%0ANzYgLTQwIC0xNjQgLTEwNiAtMjI5Yy01OCAtNTggLTEyMiAtODMgLTE4OCAt%0AODNjLTk0IDAgLTE0NyA1MiAtMTQ3IDEzOWMwIDExMiA3NSAyMjcgMTgwIDI4%0AM2MzOSAyMSA3OSAzMCAxMjAgMzBjODEgMCAxNDEgLTUyIDE0MSAtMTQwek0z%0AODQgMzI2YzAgNjEgLTI4IDk0IC03MSA5NGMtNDQgMCAtODggLTMxIC0xMjgg%0ALTkxYy00NiAtNzAgLTc0IC0xNDkgLTc0IC0yMjhjMCAtNjAgMzEgLTkxIDc4%0AIC05MSBjNDQgMCA4MiAyOSAxMjEgODNjNDYgNjMgNzQgMTU3IDc0IDIzM1oi%0APjwvcGF0aD48cGF0aCBpZD0iU1RJWFdFQk1BSU5JLTc0IiBzdHJva2Utd2lk%0AdGg9IjEwIiBkPSJNMjk2IDQyOGwtNSAtMzJoLTg0bC04NyAtMzI4Yy0xIC00%0AIC0yIC0xMSAtMiAtMTRjMCAtMTMgNiAtMTYgMTUgLTE2YzE2IDAgMzIgMTYg%0AODEgNzlsMTMgLTdjLTYwIC05MiAtOTEgLTEyMSAtMTQzIC0xMjFjLTI3IDAg%0ALTQ2IDEyIC00NiAzN2MwIDExIDggNDIgMTYgNzRsNzggMjk2aC03NWMtMSAz%0AIC0xIDYgLTEgNmMwIDExIDkgMjAgMzMgMjVjMzIgNyA5NyA1NiAxMzMgMTEw%0AYzQgNiAxMCA5IDE0IDljNiAwIDkgLTMgOSAtOCBjMCAwIDAgLTUgLTEgLTds%0ALTI4IC0xMDNoODBaIj48L3BhdGg+PHBhdGggaWQ9IlNUSVhXRUJNQUlOSS02%0ANCIgc3Ryb2tlLXdpZHRoPSIxMCIgZD0iTTUyMSA2ODNsNiAtNmwtMzkgLTE1%0AMmwtNjAgLTIxOWMtMzEgLTExNCAtNjUgLTIzMCAtNjUgLTI0NmMwIC0xMiA1%0AIC0yMCAxOCAtMjBjMTcgMCAyOCA5IDgyIDcxbDEyIC0xMGMtNDkgLTczIC05%0ANyAtMTE0IC0xNDcgLTExNGMtMjYgMCAtNDEgMTggLTQxIDQ1YzAgMjMgMiAz%0AOSAxMyA4OWMtNTkgLTk5IC0xMTAgLTEzMiAtMTc4IC0xMzJjLTY1IDAgLTEw%0ANyA0MSAtMTA3IDExN2MwIDE2MiAxNjIgMzM1IDI5MiAzMzUgYzQyIDAgNTkg%0ALTE5IDY1IC01OGgxbDQ1IDE2M2MxNSA1MyAxNCA1NyAxNCA3MWMwIDIxIC05%0AIDI0IC02NCAyNnYxN2M2NCA2IDEwMCAxMiAxNTMgMjN6TTM1NiAzNjFjMCAz%0ANiAtMjQgNTcgLTQ3IDU3Yy0yOCAwIC02MyAtMTcgLTkxIC00NmMtNjYgLTcw%0AIC0xMTYgLTE3OSAtMTE2IC0yNjJjMCAtNDYgMjMgLTczIDU4IC03M2M5MiAw%0AIDE5NiAxNzIgMTk2IDMyNFoiPjwvcGF0aD48cGF0aCBpZD0iU1RJWFdFQk1B%0ASU5JLTY1IiBzdHJva2Utd2lkdGg9IjEwIiBkPSJNMzU4IDEwOWwxMiAtMTJj%0ALTU3IC03MCAtMTIxIC0xMDggLTIwNCAtMTA4Yy04MSAwIC0xMzUgNTQgLTEz%0ANSAxMzdjMCAxNTUgMTQ5IDMxNSAyOTkgMzE1YzUzIDAgODIgLTI2IDgyIC02%0AOGMwIC04NiAtMTA1IC0xNjQgLTI4NCAtMTg3Yy0xMCAtMjAgLTEwIC00NiAt%0AMTAgLTYxYzAgLTU1IDM3IC05MSA5MyAtOTFjNDQgMCA3NSAxNiAxNDcgNzV6%0ATTE1MiAyNTJsLTE3IC00NGM4NiAyMSAxMjQgMzkgMTYxIDc0YzMxIDMwIDUw%0AIDY2IDUwIDk3IGMwIDI0IC03IDM5IC0zNSAzOWMtNTcgMCAtMTI1IC03NyAt%0AMTU5IC0xNjZaIj48L3BhdGg+PHBhdGggaWQ9IlNUSVhXRUJNQUlOSS03MCIg%0Ac3Ryb2tlLXdpZHRoPSIxMCIgZD0iTTIxNSA0MjhsLTI5IC0xMDBjNTQgODEg%0AMTExIDExMyAxNzEgMTEzYzc0IDAgMTE1IC00NyAxMTUgLTEyNWMwIC0xNjUg%0ALTE1MSAtMzI3IC0yOTcgLTMyN2MtMjMgMCAtNDQgNCAtNjkgMTdjLTE3IC03%0AMCAtNDAgLTE1MiAtNDAgLTE2NmMwIC0yMiAxNSAtMjkgNjIgLTI5di0xNmgt%0AMjAzdjE2YzQzIDEgNTYgMTYgNjggNjNsMTE1IDQzMmMxMSA0MCAxNiA2NiAx%0ANiA3MWMwIDI0IC0yOCAyNyAtNDQgMjdoLTIybC0yIDE1bDE1NiAyMiBjMyAw%0AIDUgLTIgNSAtNGMwIDAgLTEgLTUgLTIgLTl6TTM4MiAzMTNjMCA1NyAtMTcg%0AODUgLTYyIDg1Yy01MyAwIC0xMTIgLTU0IC0xMzUgLTExNGMtMjkgLTc1IC02%0ANSAtMjA0IC02NSAtMjM4YzAgLTIyIDIwIC0zOCA0OCAtMzhjNTMgMCAxMDEg%0AMzMgMTQ1IDk1YzQ4IDY3IDY5IDE0MCA2OSAyMTBaIj48L3BhdGg+PHBhdGgg%0AaWQ9IlNUSVhXRUJNQUlOSS02MSIgc3Ryb2tlLXdpZHRoPSIxMCIgZD0iTTQ2%0AMyAxMTFsMTMgLTExYy03NSAtOTEgLTk5IC0xMTAgLTEzOSAtMTEwYy0yOCAw%0AIC00MCAxMiAtNDAgNDFjMCAyNSAyIDMzIDIzIDExNWMtNzUgLTExMyAtMTMz%0AIC0xNTcgLTIwMyAtMTU3Yy01NiAwIC0xMDAgNDAgLTEwMCAxMTZjMCAxNTUg%0AMTUzIDMzNiAyODYgMzM2YzQzIDAgNzIgLTIxIDgwIC01OGwxMSA0OGwzIDNs%0ANjEgN2w3IC0zYy0yIC05IC0zIC0xMSAtNiAtMjFjLTQ3IC0xNzEgLTg5IC0z%0ANDMgLTg5IC0zNjMgYzAgLTcgNiAtMTMgMTQgLTEzYzkgMCAyMiA4IDUyIDQx%0Aek0zNjUgMzYxYzAgMzUgLTIxIDU4IC01NiA1OGMtNDUgMCAtODkgLTMxIC0x%0AMzEgLTkyYy00MiAtNjMgLTc3IC0xNTIgLTc3IC0yMTVjMCAtNTUgMjQgLTc0%0AIDYwIC03NGM1MCAwIDk3IDU1IDEyNyA5OGM0NyA2OCA3NyAxNTQgNzcgMjI1%0AWiI+PC9wYXRoPjxwYXRoIGlkPSJTVElYV0VCTUFJTkktNzMiIHN0cm9rZS13%0AaWR0aD0iMTAiIGQ9Ik0zNjYgNDQybC0yMCAtMTQwaC0xNmMtMTAgODMgLTQw%0AIDExNiAtODkgMTE2Yy0zNSAwIC01OSAtMjAgLTU5IC01N2MwIC0yNyAxNSAt%0ANTYgNTQgLTEwMmM1MCAtNTggNjggLTk3IDY4IC0xMzZjMCAtODMgLTYxIC0x%0AMzQgLTE0NCAtMTM0Yy0xNyAwIC0zMiAxIC01NSAxMGMtMTkgOCAtMzMgOSAt%0ANDQgOXMtMjIgLTUgLTI5IC0yMWgtMTZsMjAgMTU5aDE2YzE0IC05NSA0OCAt%0AMTM2IDEwMCAtMTM2YzQ3IDAgNzYgMjggNzYgNzcgYzAgMzIgLTE3IDY2IC01%0ANiAxMTVjLTQzIDU0IC02MyA5OSAtNjMgMTMxYzAgNjYgNDcgMTA4IDEyMSAx%0AMDhjMTcgMCAzMSAtMyA1NiAtMTBjMTkgLTYgMjggLTcgMzYgLTdjMTUgMCAy%0AMiA0IDMwIDE4aDE0WiI+PC9wYXRoPjxwYXRoIGlkPSJTVElYV0VCTUFJTkkt%0ANzMiIHN0cm9rZS13aWR0aD0iMTAiIGQ9Ik0zNjYgNDQybC0yMCAtMTQwaC0x%0ANmMtMTAgODMgLTQwIDExNiAtODkgMTE2Yy0zNSAwIC01OSAtMjAgLTU5IC01%0AN2MwIC0yNyAxNSAtNTYgNTQgLTEwMmM1MCAtNTggNjggLTk3IDY4IC0xMzZj%0AMCAtODMgLTYxIC0xMzQgLTE0NCAtMTM0Yy0xNyAwIC0zMiAxIC01NSAxMGMt%0AMTkgOCAtMzMgOSAtNDQgOXMtMjIgLTUgLTI5IC0yMWgtMTZsMjAgMTU5aDE2%0AYzE0IC05NSA0OCAtMTM2IDEwMCAtMTM2YzQ3IDAgNzYgMjggNzYgNzcgYzAg%0AMzIgLTE3IDY2IC01NiAxMTVjLTQzIDU0IC02MyA5OSAtNjMgMTMxYzAgNjYg%0ANDcgMTA4IDEyMSAxMDhjMTcgMCAzMSAtMyA1NiAtMTBjMTkgLTYgMjggLTcg%0AMzYgLTdjMTUgMCAyMiA0IDMwIDE4aDE0WiI+PC9wYXRoPjxwYXRoIGlkPSJT%0AVElYV0VCTUFJTkktNjUiIHN0cm9rZS13aWR0aD0iMTAiIGQ9Ik0zNTggMTA5%0AbDEyIC0xMmMtNTcgLTcwIC0xMjEgLTEwOCAtMjA0IC0xMDhjLTgxIDAgLTEz%0ANSA1NCAtMTM1IDEzN2MwIDE1NSAxNDkgMzE1IDI5OSAzMTVjNTMgMCA4MiAt%0AMjYgODIgLTY4YzAgLTg2IC0xMDUgLTE2NCAtMjg0IC0xODdjLTEwIC0yMCAt%0AMTAgLTQ2IC0xMCAtNjFjMCAtNTUgMzcgLTkxIDkzIC05MWM0NCAwIDc1IDE2%0AIDE0NyA3NXpNMTUyIDI1MmwtMTcgLTQ0Yzg2IDIxIDEyNCAzOSAxNjEgNzRj%0AMzEgMzAgNTAgNjYgNTAgOTcgYzAgMjQgLTcgMzkgLTM1IDM5Yy01NyAwIC0x%0AMjUgLTc3IC0xNTkgLTE2NloiPjwvcGF0aD48cGF0aCBpZD0iU1RJWFdFQk1B%0ASU4tMjgiIHN0cm9rZS13aWR0aD0iMTAiIGQ9Ik0zMDQgLTE2MWwtMTIgLTE2%0AYy0xNTggOTAgLTI0NCAyNTkgLTI0NCA0MjljMCAxODUgODcgMzI5IDI0NyA0%0AMjRsOSAtMTZjLTEzOSAtMTE5IC0xNzAgLTIxMiAtMTcwIC00MDVjMCAtMTg2%0AIDMwIC0yOTkgMTcwIC00MTZaIj48L3BhdGg+PC9kZWZzPjxnIHN0cm9rZT0i%0AYmxhY2siIGZpbGw9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjAiIHRyYW5zZm9y%0AbT0ibWF0cml4KDEgMCAwIC0xIDAgMCkiPjx1c2UgeGxpbms6aHJlZj0iI1NU%0ASVhXRUJNQUlOSS03NSI+PC91c2U+PHVzZSB4bGluazpocmVmPSIjU1RJWFdF%0AQk1BSU5JLTY5IiB4PSI1MDUiIHk9IjAiPjwvdXNlPjx1c2UgeGxpbms6aHJl%0AZj0iI1NUSVhXRUJNQUlOSS02NCIgeD0iNzg4IiB5PSIwIj48L3VzZT48dXNl%0AIHhsaW5rOmhyZWY9IiNTVElYV0VCTUFJTi0yOSIgeD0iMTMyMCIgeT0iMCI+%0APC91c2U+PHVzZSB4bGluazpocmVmPSIjU1RJWFdFQk1BSU5JLTY1IiB4PSIx%0ANjU4IiB5PSIwIj48L3VzZT48dXNlIHhsaW5rOmhyZWY9IiNTVElYV0VCTUFJ%0ATkktNzQiIHg9IjIxMDciIHk9IjAiPjwvdXNlPjx1c2UgeGxpbms6aHJlZj0i%0AI1NUSVhXRUJNQUlOSS02QyIgeD0iMjQwOCIgeT0iMCI+PC91c2U+PHVzZSB4%0AbGluazpocmVmPSIjU1RJWFdFQk1BSU5JLTY1IiB4PSIyNjkyIiB5PSIwIj48%0AL3VzZT48dXNlIHhsaW5rOmhyZWY9IiNTVElYV0VCTUFJTkktNkQiIHg9IjMx%0ANDEiIHk9IjAiPjwvdXNlPjx1c2UgeGxpbms6aHJlZj0iI1NUSVhXRUJNQUlO%0ASS02RiIgeD0iMzg2OCIgeT0iMCI+PC91c2U+PHVzZSB4bGluazpocmVmPSIj%0AU1RJWFdFQk1BSU5JLTc0IiB4PSI0MzczIiB5PSIwIj48L3VzZT48dXNlIHhs%0AaW5rOmhyZWY9IiNTVElYV0VCTUFJTkktNjQiIHg9IjQ2NzQiIHk9IjAiPjwv%0AdXNlPjx1c2UgeGxpbms6aHJlZj0iI1NUSVhXRUJNQUlOSS02NSIgeD0iNTIw%0ANiIgeT0iMCI+PC91c2U+PHVzZSB4bGluazpocmVmPSIjU1RJWFdFQk1BSU5J%0ALTcwIiB4PSI1NjU1IiB5PSIwIj48L3VzZT48dXNlIHhsaW5rOmhyZWY9IiNT%0AVElYV0VCTUFJTkktNjEiIHg9IjYxNjQiIHk9IjAiPjwvdXNlPjx1c2UgeGxp%0Abms6aHJlZj0iI1NUSVhXRUJNQUlOSS03MyIgeD0iNjY3MCIgeT0iMCI+PC91%0Ac2U+PHVzZSB4bGluazpocmVmPSIjU1RJWFdFQk1BSU5JLTczIiB4PSI3MDY0%0AIiB5PSIwIj48L3VzZT48dXNlIHhsaW5rOmhyZWY9IiNTVElYV0VCTUFJTkkt%0ANjUiIHg9Ijc0NTgiIHk9IjAiPjwvdXNlPjx1c2UgeGxpbms6aHJlZj0iI1NU%0ASVhXRUJNQUlOLTI4IiB4PSI3OTA3IiB5PSIwIj48L3VzZT48L2c+PC9zdmc+%0A" alt=" uid) et le mot de passe ("> _password si le mot de passe est stocké dans la session):</p>
<p>C'est normalement possible de le faire mais je n y arrive pas. </p>
<p>J'ai fait un test en faisant un appel http auquel j'ai ajouté dans le header les credenrtials de mon utilisateur en base 64 et mon application réagis bien a cette requête donc l'applciation est bein fonctionnel. Sur Lemonldap impossible j'ai l'impression qu'il n'arrive même pas ajouter des informations dans le header http </p>
<p>Dans mon cas, je veux juste ajouter les creds de l'utilisateur dans le header de ma requette http. J'utilise la version 1.9 mais j'ai aussi essayé sur la version 2.0 et j'ai suivi leurs doc en ayant activé préalablement le Store user password in session et en mettant ensuite dans la conf du virtual host Authorization => "Basic ".encode_base64("$uid:$_password")</p>
<p>Pourriez vous m'aider svp si vous y êtes parvenu et merci d'avance pour votre aide !</p>
<div><a href="https://linuxfr.org/forums/linux-general/posts/lemonldap-http-basic-authentication.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/117270/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/forums/linux-general/posts/lemonldap-http-basic-authentication#comments">ouvrir dans le navigateur</a>
</p>
yolassilyasshttps://linuxfr.org/nodes/117270/comments.atomtag:linuxfr.org,2005:News/389402018-12-06T04:55:00+01:002018-12-06T11:30:59+01:00Sortie de LemonLDAP::NG 2.0Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>LemonLDAP::NG est un logiciel libre d’authentification unique pour applications Web (WebSSO), de contrôle d’accès et de fédération d’identités, écrit en Perl et publié sous licence GPL. Cette nouvelle version majeure apporte de grands changements au logiciel comme le prise en charge de Node.js, des seconds facteurs d’authentification (OTP, U2F, Yubikey…), un mécanisme de greffons, la protection de micro‐services et bien d’autres qui seront développés dans la suite de cet article.<br>
<img src="//img.linuxfr.org/img/68747470733a2f2f6c656d6f6e6c6461702d6e672e6f72672f5f6d656469612f77696b692f6c6f676f2e706e67/logo.png" alt="logo LemonLDAP::NG" title="Source : https://lemonldap-ng.org/_media/wiki/logo.png"></p>
</div><ul><li>lien nᵒ 1 : <a title="https://linuxfr.org/news/sortie-de-lemonldap-ng-1-9" hreflang="fr" href="https://linuxfr.org/redirect/103202">Dépêche sur la sortie de la version 1.9</a></li><li>lien nᵒ 2 : <a title="https://projects.ow2.org/view/lemonldap-ng/lemonldap-ng-2-0-0-is-out/" hreflang="en" href="https://linuxfr.org/redirect/103203">Annonce officielle sur le site OW2</a></li><li>lien nᵒ 3 : <a title="https://lemonldap-ng.org/download" hreflang="en" href="https://linuxfr.org/redirect/103204">Téléchargement</a></li><li>lien nᵒ 4 : <a title="https://lemonldap-ng.org/documentation/latest/start" hreflang="en" href="https://linuxfr.org/redirect/103205">Documentation</a></li><li>lien nᵒ 5 : <a title="https://lemonldap-ng.org/documentation/2.0/ssoaas" hreflang="en" href="https://linuxfr.org/redirect/103206">SSOaaS : notre concept du SSO en tant que service</a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li>
<a href="#toc-principales-nouveaut%C3%A9s-de-la-version20">Principales nouveautés de la version 2.0</a><ul>
<li><a href="#toc-handler-nodejs">Handler Node.js</a></li>
<li><a href="#toc-seconds-facteurs-dauthentification">Seconds facteurs d’authentification</a></li>
<li><a href="#toc-greffons">Greffons</a></li>
<li><a href="#toc-sso-as-a-service-ssoaas">SSO as a Service (SSOaaS)</a></li>
<li><a href="#toc-serveur-%C3%A0-serveur">Serveur à Serveur</a></li>
<li><a href="#toc-f%C3%A9d%C3%A9ration-renater">Fédération Renater</a></li>
<li>
<a href="#toc-manager">Manager</a><ul>
<li><a href="#toc-diff%C3%A9rentiel-des-configurations">Différentiel des configurations</a></li>
<li><a href="#toc-gestion-des-acl-pour-les-protocoles-cas-saml-et-openidconnect">Gestion des ACL pour les protocoles CAS, SAML et OpenID Connect</a></li>
<li><a href="#toc-autres">Autres</a></li>
</ul>
</li>
<li>
<a href="#toc-portail">Portail</a><ul>
<li><a href="#toc-rafra%C3%AEchissement-de-la-session">Rafraîchissement de la session</a></li>
<li><a href="#toc-autres-1">Autres</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#toc-contributeurs">Contributeurs</a></li>
</ul>
<p>Le projet LemonLDAP::NG a été publié pour la première fois en 2005 par la Gendarmerie nationale. Il est aujourd’hui très largement déployé en France, notamment dans les administrations et collectivités territoriales. Ses grands principes sont :</p>
<ul>
<li>le SSO doit être faiblement intrusif dans les applications : pas d’obligation d’utiliser une bibliothèque ou un langage spécifique, prise en charge d’un maximum de protocoles, etc. ;</li>
<li>le SSO ne doit pas pénaliser les performances des applications (architecture extensible, faible surcharge…) ;</li>
<li>pont protocolaire : LemonLDAP::NG permet de connecter une application utilisant le protocole standard X sur une infrastructure basée sur le protocole Y ;</li>
<li>et, bien sûr, la sécurité et le confort des utilisateurs.</li>
</ul>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f6c656d6f6e6c6461702d6e672e6f72672f5f6d656469612f73637265656e73686f74732f7265666572656e6365732f73637265656e73686f745f726164696f6672616e6365322e706e67/screenshot_radiofrance2.png" alt="interface utilisateur LemonLDAP::NG" title="Source : https://lemonldap-ng.org/_media/screenshots/references/screenshot_radiofrance2.png"></p>
<h2 id="toc-principales-nouveautés-de-la-version20">Principales nouveautés de la version 2.0</h2>
<p>Voici les principales nouveautés de cette nouvelle version majeure :</p>
<ul>
<li>meilleur fonctionnement du pont protocolaire : de nombreux tests unitaires valident le fonctionnement du SSO lors du passage d’un protocole à un autre ; par exemple, une application qui s’authentifie en SAML sur le portail WebSSO, qui lui‐même redirige en OpenID Connect sur un fournisseur d’identité externe (France Connect, Google, etc.) ;</li>
<li>authentification multi‐facteur ;</li>
<li>SSOaaS (<em>SSO as a Service</em>) ;</li>
<li>un moteur de greffons permettant de créer des composants d’authentification ou toutes sortes d’applications s’intégrant au portail sans avoir à modifier le code source et ainsi mieux gérer les montées de version.</li>
</ul>
<p>Vous pouvez consulter la <a href="https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/milestones/51">liste complète des nouveautés</a>.</p>
<h3 id="toc-handler-nodejs">Handler Node.js</h3>
<p>Node.js est une plate‐forme très populaire pour le développement d’applications Web. La version 2.0 inclut un <a href="https://lemonldap-ng.org/documentation/2.0/nodehandler"><em>handler</em> node.js</a> en version bêta, qui permet de protéger une application Node.js par LemonLDAP, directement dans le code de l’application.<br>
Cela permet également de rendre facilement une application compatible avec des protocoles de SSO comme SAML ou OpenID Connect. Ce <em>handler</em> ne gère pas encore toutes les fonctionnalités de LL::NG.</p>
<p>Le <em>handler</em> Node.js fournit également un moteur alternatif pour le SSO en tant que service.</p>
<h3 id="toc-seconds-facteurs-dauthentification">Seconds facteurs d’authentification</h3>
<p>LemonLDAP::NG gère désormais directement les seconds facteurs d’authentification (2FA), en particulier :</p>
<ul>
<li>les périphériques U2F ;</li>
<li>TOTP (FreeOTP, Authy, GoogleAuthenticator…) ;</li>
<li>les clefs Yubikey ;</li>
<li>les appels <a href="https://lemonldap-ng.org/documentation/2.0/rest2f">REST</a> à un service Web externe ;</li>
<li>n’importe quelle autre commande via le module <a href="https://lemonldap-ng.org/documentation/2.0/external2f">External 2F</a>.</li>
</ul>
<h3 id="toc-greffons">Greffons</h3>
<p>LemonLDAP::NG est désormais capable de gérer des développements spécifiques sans pour autant risquer de les casser en cas de mise à jour, via un <a href="https://lemonldap-ng.org/documentation/2.0/start#plugins">système de greffons</a>. Quelques exemples déjà disponibles :</p>
<ul>
<li>
<a href="https://lemonldap-ng.org/documentation/2.0/autosignin"><em>Auto Signin</em></a> : permet de s’authentifier automatiquement en fonction d’une règle, par exemple une adresse IP ;</li>
<li>
<a href="https://lemonldap-ng.org/documentation/2.0/bruteforceprotection"><em>Brute Force Protection</em></a> : permet de gérer la protection contre les attaques en force brute directement dans LemonLDAP::NG ;</li>
<li>
<a href="https://lemonldap-ng.org/documentation/2.0/checkstate"><em>Check State</em></a> : permet de générer une page de statut pour une meilleure intégration avec des outils de supervision ;</li>
<li>etc.</li>
</ul>
<h3 id="toc-sso-as-a-service-ssoaas">SSO as a Service (SSOaaS)</h3>
<p>Le contrôle d’accès SSO fournit trois services :</p>
<ul>
<li>authentification globale ;</li>
<li>gestion des autorisations : authentifier n’est pas suffisant, les droits d’accès doivent être examinés ;</li>
<li>traçabilité :
<ul>
<li>traces d’accès issues du SSO,</li>
<li>traces des actions de l’utilisateur.</li>
</ul>
</li>
</ul>
<p>LemonLDAP::NG fournit tous ces services (à l’exception des traces des actions des utilisateurs qui doivent être générées par l’application, mais LemonLDAP::NG fournit les identifiants à enregistrer via les en‐têtes HTTP).</p>
<p>Les acronymes « *aaS » signifient que l’application peut piloter la couche sous‐jacente (IaaS, pour l’infrastructure ; PaaS, pour la plate‐forme…). Pour nous, le SSOaaS doit fournir la possibilité pour une application de gérer ses droits et choisir les attributs à transmettre : un fichier <a href="https://fr.wikipedia.org/wiki/JavaScript_Object_Notation" title="JavaScript Object Notation">JSON</a> est présent à la racine de l’application et permet de définir ces paramètres, sans avoir à manipuler la configuration centrale du WebSSO.<br>
L’authentification SSO ne peut être réellement « *aaS » : l’application l’utilise sans la gérer, bien sûr.</p>
<p>LemonLDAP::NG fournit donc les fonctionnalités permettant de mettre en œuvre le SSOaaS dans ces conditions. Encore un peu rustique, cette prise en charge sera améliorée dans les prochaines mises à jour de la branche 2.0.</p>
<h3 id="toc-serveur-à-serveur">Serveur à Serveur</h3>
<p>Les applications modernes utilisent des micro‐services Web. LemonLDAP::NG fournit un dispositif permettant de donner à une application un ticket qu’elle peut utiliser sur d’autres micro‐services protégés par le WebSSO pour :</p>
<ul>
<li>propager l’identité de l’utilisateur final ;</li>
<li>permettre aux micro‐services de vérifier les droits de l’utilisateur final ;</li>
<li>limiter l’accès de cette application aux seuls micro‐services autorisés dans la console d’administration LemonLDAP::NG ;</li>
<li>limiter l’usage dans le temps de ce ticket (30 secondes).</li>
</ul>
<p>L’alternative consistant à donner à l’application le ticket SSO de l’utilisateur est nettement moins sécurisée : l’application obtiendrait ainsi tous les droits de l’utilisateur pendant tout le temps de sa session.</p>
<p>La solution apportée par LemonLDAP::NG est une alternative à OAuth2, moins intrusive : le micro‐service n’a pas besoin de valider le jeton d’accès, ce jeton est consommé directement par un <em>handler</em> qui retransmet ensuite l’identité de l’utilisateur via des en‐têtes HTTP.</p>
<h3 id="toc-fédération-renater">Fédération Renater</h3>
<p>LemonLDAP::NG est désormais compatible nativement avec le système de <a href="https://lemonldap-ng.org/documentation/2.0/renater">fédération de Renater</a>, permettant de rendre son déploiement plus facile dans l’éducation, les universités, les laboratoires et le secteur public utilisant la fédération de Renater.</p>
<h3 id="toc-manager">Manager</h3>
<h4 id="toc-différentiel-des-configurations">Différentiel des configurations</h4>
<p>Cette nouvelle fonctionnalité permet d’afficher directement dans le <em>Manager</em> la différence entre deux versions de la configuration et donc d’identifier plus facilement les paramètres qui ont été modifiés.</p>
<h4 id="toc-gestion-des-acl-pour-les-protocoles-cas-saml-et-openidconnect">Gestion des ACL pour les protocoles CAS, SAML et OpenID Connect</h4>
<p>Il est désormais possible de définir des listes de contrôle d’accès (ACL) pour des applications reliées par CAS, SAML et OpenID Connect. Ces règles peuvent être également utilisées pour afficher ou non l’icône des applications dans le menu.</p>
<h4 id="toc-autres">Autres</h4>
<ul>
<li>explorateur de sessions : possibilité de trier les sessions par date de création et de modification ;</li>
<li>journaux : possibilité de gérer les journaux séparément (traces techniques et traces des utilisateurs) :
<ul>
<li>journaux du serveur (Apache uniquement) ;</li>
<li>journal système (syslog) ;</li>
<li>Log4Perl (compatible Log4J) ;</li>
<li>
<a href="https://sentry.io/welcome/">Sentry</a> (à utiliser de préférence avec Dispatch) ;</li>
<li>Dispatch : permet de tracer séparément en fonction du niveau d’alerte.</li>
</ul>
</li>
</ul>
<h3 id="toc-portail">Portail</h3>
<h4 id="toc-rafraîchissement-de-la-session">Rafraîchissement de la session</h4>
<p>Il est à présent possible pour l’utilisateur de rafraîchir sa session sans avoir besoin de se déconnecter, utile dans le cas de l’ajout à un nouveau groupe apportant de nouvelles applications sur le portail.</p>
<h4 id="toc-autres-1">Autres</h4>
<ul>
<li>sélection de la langue avant la connexion ;</li>
<li>nouvelles langues : vietnamien, arabe et italien, en plus de l’anglais et du français ;</li>
<li>gestion du changement de logo du portail sans modifier le thème ;</li>
<li>passage du portail sur Bootstrap 4.</li>
</ul>
<h2 id="toc-contributeurs">Contributeurs</h2>
<p>Les contributeurs suivants ont participé à cette nouvelle version :</p>
<ul>
<li>développeurs principaux : Xavier Guimard, Christophe Maudoux et Clément Oudot ;</li>
<li>organisations (sponsors et bêta‐testeurs) : la Gendarmerie nationale, Worteks, Orange, Huma Num, Campus Condorcet, Agirc‐Arrco et Urgences Santé Québec ;</li>
<li>communauté (ouvertures de tickets, tests et correctifs) : Valérie Bauche, David Coutadeur, Frédéric Massot, Mathieu Lecompte‐Melançon, Nicolas Chauvet, Mathieu Parent, Rick Jongbloed, Jérémy Kespite, Philippe Baye, Pasi Karkkainen, Julian Layen, Quentin Jabœuf, Stéphane Liabat, Emmanuel Lesouef, François‐Xavier Deltombe, Iheb Khemissi, Jean‐Charles Rogez, Nicolas Dutertre, Maxime de Roucy, <em>pit pit</em>, Carl R., Dave Conroy, Paul Curie, Dejan Sanader, Jean‐François Vincent, Anthony Roussel, Xavier Bachelot, <em>Lulandco</em>, Cédric Liard, Frédéric Pégé, Jonathan Swaelens et Michael Goldfinger.</li>
</ul>
</div><div><a href="https://linuxfr.org/news/sortie-de-lemonldap-ng-2-0.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/115881/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/sortie-de-lemonldap-ng-2-0#comments">ouvrir dans le navigateur</a>
</p>
KPTNyaddZeroHeurebubar🦥Xavier TeyssierpaucurDavy DefaudM5oulhttps://linuxfr.org/nodes/115881/comments.atomtag:linuxfr.org,2005:Post/393182018-06-26T09:25:59+02:002018-06-26T09:25:59+02:00Recherche solution U2F centralisé<p>Bonjour,</p>
<p>Je suis à la recherche d'une solution pour double authentification avec clef U2F (actuellement Yubico, mais rien n'est figé).<br>
Pour double authentification à l'ouverture de session Linux (Ubuntu via pam) et Windows (si possible). Qui soit centralisé et lié à un AD avec possibilité de hors connexion (pour les ordinateurs portable qui ne peuvent pas se connecter au serveur d'authentification). Et évolution vers SSO pour authentification Zimbra et voir OpenVPN.<br>
Et qui soit OpenSource si possible :D (d'où ma question ici).<br>
Et si possible qui est une interface web d’administration.</p>
<p>J'ai déjà regarder: Gluu, LinOTP, PrivacyIDEA mais rien de très convainquant pour le moment.</p>
<p>Est ce qu'il y en a qui on des retours sur ce genre d'application ?</p>
<p>Merci de vos retours ;)</p>
<div><a href="https://linuxfr.org/forums/general-cherche-logiciel/posts/recherche-solution-u2f-centralise.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/114778/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/forums/general-cherche-logiciel/posts/recherche-solution-u2f-centralise#comments">ouvrir dans le navigateur</a>
</p>
totoroavihttps://linuxfr.org/nodes/114778/comments.atomtag:linuxfr.org,2005:News/381402017-08-13T20:22:58+02:002017-08-17T14:38:55+02:00Le programme de la LDAPCon 2017 est sorti !Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>Nous sommes heureux de vous annoncer la sortie du programme des conférences de la <strong>LDAPCon 2017</strong> qui aura lieu à Bruxelles les 19 et 20 octobre prochain.</p>
<p>Cette conférence internationale sur <a href="https://fr.wikipedia.org/wiki/LDAP" title="Définition Wikipédia">LDAP</a> et plus largement sur les questions de gestion des identités, d’authentification et d’habilitation, est l’occasion de rencontrer les acteurs les plus importants du domaine.</p>
<p>Pour en savoir plus : <a href="https://ldapcon.org/2017/conference-program/">https://ldapcon.org/2017/conference-program/</a> (mots‐clés : ReOpenLDAP, Sparrow, OpenLDAP, Apache Mavibot, PHP-LDAP, <em>load balancing</em>, <em>replication</em>, SSO, FusionDirectory, ForgeRock, etc.).</p>
<p>De plus, la date de vente des tickets au tarif « inscription anticipée » de la LDAPCon 2017 a été étendue au 25 août ; vous pouvez encore <a href="https://www.eventbrite.fr/e/ldapcon-2017-tickets-33245154151?ref=ebtn">acheter votre ticket Early Bird</a>.</p></div><ul><li>lien nᵒ 1 : <a title="https://ldapcon.org/2017/conference-program/" hreflang="fr" href="https://linuxfr.org/redirect/100410">Programme de la conférences</a></li><li>lien nᵒ 2 : <a title="https://www.eventbrite.fr/e/ldapcon-2017-tickets-33245154151?ref=ebtn" hreflang="fr" href="https://linuxfr.org/redirect/100411">Vente des tickets de la LDAPCon 2017</a></li><li>lien nᵒ 3 : <a title="https://linuxfr.org/news/sixieme-edition-de-la-ldapcon-a-bruxelles-en-octobre-2017" hreflang="fr" href="https://linuxfr.org/redirect/100426">LinuxFr.org : Sixième édition de la LDAPCon à Bruxelles en octobre 2017</a></li></ul><div></div><div><a href="https://linuxfr.org/news/le-programme-de-la-ldapcon-2017-est-sorti.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/112449/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/le-programme-de-la-ldapcon-2017-est-sorti#comments">ouvrir dans le navigateur</a>
</p>
panze74Benoît SibaudDavy Defaudhttps://linuxfr.org/nodes/112449/comments.atomtag:linuxfr.org,2005:News/373282017-02-08T15:34:37+01:002017-02-23T15:37:17+01:00Évolutions des projets La Brique Internet et YunoHost des versions 2.2, 2.4 et 2.5Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p><a href="https://yunohost.org"><img src="//img.linuxfr.org/img/687474703a2f2f7069782e746f696c652d6c696272652e6f72672f75706c6f61642f6f726967696e616c2f313436343130363636372e706e67/1464106667.png" alt="Logo blanc de YunoHost" title="Source : http://pix.toile-libre.org/upload/original/1464106667.png"></a></p>
<p>YunoHost est une distribution basée sur Debian GNU/Linux orientée serveur, ayant pour but de faciliter l’auto‐hébergement.</p>
<p>Dans un premier temps, sera présenté le projet <em>La Brique Internet</em>. Dans un second temps, les améliorations apportées dans les versions 2.2, 2.4 et 2.5 de YunoHost seront passées en revue. Pour finir, seront présentés la nouvelle organisation, les travaux qui ont été menés sur l’infrastructure du projet, les nouveaux outils de développement et les futurs chantiers.</p></div><ul><li>lien nᵒ 1 : <a title="https://forum.yunohost.org/t/parution-de-yunohost-2-4/1541/1" hreflang="fr" href="https://linuxfr.org/redirect/97274">Annonce de la parution de YunoHost 2.4 et tutoriel de mise à niveau</a></li><li>lien nᵒ 2 : <a title="https://forum.yunohost.org/t/yunohost-2-4-released/1544/1" hreflang="en" href="https://linuxfr.org/redirect/97275">Announcement of YunoHost 2.4 release and upgrade tutorial</a></li><li>lien nᵒ 3 : <a title="https://forum.yunohost.org/t/yunohost-2-2-released/602" hreflang="en" href="https://linuxfr.org/redirect/97276">Announcement of YunoHost 2.2 release</a></li><li>lien nᵒ 4 : <a title="https://linuxfr.org/news/yunohost-2-0-l-auto-hebergement-a-portee-de-clic" hreflang="fr" href="https://linuxfr.org/redirect/97277">Précédente dépêche LinuxFr.org : YunoHost 2.0 : l’auto‐hébergement à portée de clic</a></li><li>lien nᵒ 5 : <a title="https://fr.wikipedia.org/wiki/YunoHost" hreflang="fr" href="https://linuxfr.org/redirect/97278">Article Wikipédia de YunoHost</a></li><li>lien nᵒ 6 : <a title="https://yunohost.org" hreflang="fr" href="https://linuxfr.org/redirect/97279">Site de YunoHost</a></li><li>lien nᵒ 7 : <a title="https://forum.yunohost.org" hreflang="fr" href="https://linuxfr.org/redirect/97280">Forum de YunoHost</a></li><li>lien nᵒ 8 : <a title="https://github.com/YunoHost" hreflang="en" href="https://linuxfr.org/redirect/97281">Dépôts de développement du cœur de YunoHost</a></li><li>lien nᵒ 9 : <a title="https://github.com/YunoHost-apps" hreflang="en" href="https://linuxfr.org/redirect/97282">Dépôts de développement des applications YunoHost</a></li><li>lien nᵒ 10 : <a title="https://labriqueinter.net" hreflang="fr" href="https://linuxfr.org/redirect/97291">Site de La Brique Internet</a></li><li>lien nᵒ 11 : <a title="https://internetcu.be" hreflang="en" href="https://linuxfr.org/redirect/97292">Internet Cube website</a></li><li>lien nᵒ 12 : <a title="https://github.com/labriqueinternet" hreflang="en" href="https://linuxfr.org/redirect/97293">Dépôts de développement de La Brique Internet</a></li><li>lien nᵒ 13 : <a title="https://dev.yunohost.org" hreflang="en" href="https://linuxfr.org/redirect/97611">Suivi de bogues de YunoHost et de La Brique Internet</a></li><li>lien nᵒ 14 : <a title="https://translate.yunohost.org" hreflang="en" href="https://linuxfr.org/redirect/97612">Outil de traduction Weblate</a></li><li>lien nᵒ 15 : <a title="https://forum.yunohost.org/t/sortie-de-yunohost-2-5-chelsea-manning-yunohost-2-5-release-chelsea-manning/2393" hreflang="fr" href="https://linuxfr.org/redirect/99234">Annonce de parution de YunoHost 2.5</a></li><li>lien nᵒ 16 : <a title="https://demo.yunohost.org" hreflang="fr" href="https://linuxfr.org/redirect/99235">Démonstration</a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li><a href="#la-brique-internet">La Brique Internet</a></li>
<li><a href="#nouvelles-fonctionnalit%C3%A9s-de-yunohost22">Nouvelles fonctionnalités de YunoHost 2.2</a></li>
<li>
<a href="#nouvelles-fonctionnalit%C3%A9s-de-yunohost24">Nouvelles fonctionnalités de YunoHost 2.4</a><ul>
<li><a href="#syst%C3%A8me-de-sauvegarde-et-de-restauration">Système de sauvegarde et de restauration</a></li>
<li><a href="#gestion-fine-de-la-configuration-des-services">Gestion fine de la configuration des services</a></li>
<li><a href="#gestion-et-int%C3%A9gration-des-applications">Gestion et intégration des applications</a></li>
<li><a href="#migration-des-services">Migration des services</a></li>
<li><a href="#autres-fonctionnalit%C3%A9s">Autres fonctionnalités</a></li>
</ul>
</li>
<li><a href="#organisation-du-projet">Organisation du projet</a></li>
<li>
<a href="#yunohost25-chelsea-manning">YunoHost 2.5 (<em>Chelsea Manning</em>)</a><ul>
<li><a href="#int%C3%A9gration-de-letsencrypt">Intégration de Let’s Encrypt</a></li>
<li><a href="#correctifs">Correctifs</a></li>
<li><a href="#autres">Autres</a></li>
<li><a href="#pour-les-empaqueteurs-dapplications">Pour les empaqueteurs d’applications</a></li>
</ul>
</li>
<li><a href="#infrastructure-du-projet-yunohost">Infrastructure du projet YunoHost</a></li>
<li>
<a href="#outils-de-d%C3%A9veloppement">Outils de développement</a><ul>
<li><a href="#ci-apps">CI-Apps</a></li>
<li><a href="#ci-core">CI-Core</a></li>
</ul>
</li>
<li><a href="#futurs-d%C3%A9veloppements">Futurs développements</a></li>
<li><a href="#remerciements">Remerciements</a></li>
<li><a href="#venez-contribuer">Venez contribuer !</a></li>
</ul><p><a href="https://demo.yunohost.org"><img src="//img.linuxfr.org/img/687474703a2f2f7069782e746f696c652d6c696272652e6f72672f75706c6f61642f6f726967696e616c2f313438363436393936322e706e67/1486469962.png" alt="Interface d’administration" title="Source : http://pix.toile-libre.org/upload/original/1486469962.png"></a></p>
<h2 id="la-brique-internet">La Brique Internet</h2>
<p><a href="https://labriqueinter.net/photos/labriqueinternet-nature.png"><img src="//img.linuxfr.org/img/687474703a2f2f7069782e746f696c652d6c696272652e6f72672f75706c6f61642f6f726967696e616c2f313436343237363930312e706e67/1464276901.png" alt="Photo de La Brique Internet" title="Source : http://pix.toile-libre.org/upload/original/1464276901.png"></a></p>
<p>Le projet <a href="https://labriqueinter.net"><em>La Brique Internet</em></a> a pour but de fournir une carte ARM (actuellement Olimex, qui est un <a href="https://fr.wikipedia.org/wiki/Mat%C3%A9riel_libre#Ordinateur">matériel libre</a> (à l’exception des puces)) avec YunoHost préalablement installé. La Brique Internet est distribuée par les <a href="https://fr.wikipedia.org/wiki/Fournisseur_d'acc%C3%A8s_%C3%A0_Internet" title="Fournisseur d’accès à Internet">FAI</a> associatifs membres de la <a href="https://www.ffdn.org">Fédération FDN</a>. Les FAI fournissent également un service de <a href="https://fr.wikipedia.org/wiki/R%C3%A9seau_priv%C3%A9_virtuel">réseau privé virtuel</a> (VPN) afin de contourner des barrières du FAI à l’auto‐hébergement et ainsi profiter d’un Internet neutre.</p>
<h2 id="nouvelles-fonctionnalités-de-yunohost22">Nouvelles fonctionnalités de YunoHost 2.2</h2>
<p><img src="//img.linuxfr.org/img/687474703a2f2f7069782e746f696c652d6c696272652e6f72672f75706c6f61642f6f726967696e616c2f313436363539383131332e706e67/1466598113.png" alt="Logo vertical de YunoHost" title="Source : http://pix.toile-libre.org/upload/original/1466598113.png"><br>
Sortie le 28 mai 2015, <a href="https://forum.yunohost.org/t/yunohost-2-2-released/602">YunoHost 2.2</a> apporte les modifications suivantes :<br><img src="//img.linuxfr.org/img/68747470733a2f2f75706c6f61642e77696b696d656469612e6f72672f77696b6970656469612f636f6d6d6f6e732f322f32632f446e736d6173715f69636f6e2e737667/Dnsmasq_icon.svg" alt="Logo Dnsmasq" title="Source : https://upload.wikimedia.org/wikipedia/commons/2/2c/Dnsmasq_icon.svg"></p>
<ul>
<li>le <a href="https://fr.wikipedia.org/wiki/serveur%20DNS" title="Définition Wikipédia">serveur DNS</a>, <a href="https://fr.wikipedia.org/wiki/BIND" title="Définition Wikipédia">BIND</a> a été remplacé par <a href="https://fr.wikipedia.org/wiki/Dnsmasq" title="Définition Wikipédia">Dnsmasq</a>, plus léger pour La Brique Internet ;</li>
<li>un système de quota a été mis en place sur les boîtes de courriel des utilisateurs ;</li>
<li>début de prise en charge de Debian <em>Jessie</em>.</li>
</ul><h2 id="nouvelles-fonctionnalités-de-yunohost24">Nouvelles fonctionnalités de YunoHost 2.4</h2>
<p>Sortie le 20 mai 2016, YunoHost 2.4 met fin à la prise en charge de Debian <em>Wheezy</em> et est uniquement disponible sous Debian <em>Jessie</em>.</p>
<h3 id="système-de-sauvegarde-et-de-restauration">Système de sauvegarde et de restauration</h3>
<p><img src="//img.linuxfr.org/img/687474703a2f2f7069782e746f696c652d6c696272652e6f72672f75706c6f61642f6f726967696e616c2f313436343130373036322e706e67/1464107062.png" alt="Système de sauvegarde et de restauration" title="Source : http://pix.toile-libre.org/upload/original/1464107062.png"></p>
<p>L’ajout majeur de la version 2.4 est la possibilité de sauvegarder et restaurer complètement le système :</p>
<ul>
<li>à partir de l’interface Web d’administration et de la ligne de commande avec la commande : <code>yunohost backup -h</code> ;</li>
<li>dont, en particulier les comptes utilisateurs, les applications, les courriels, la configuration des services et les données ;</li>
<li>pour l’instant, les sauvegardes sont stockées localement, c’est‐à‐dire que l’archive est créée sur le serveur directement, mais le système a été pensé pour gérer à terme, d’autres emplacements ((S)FTP, autre serveur, etc.).</li>
</ul><h3 id="gestion-fine-de-la-configuration-des-services">Gestion fine de la configuration des services</h3>
<p><img src="//img.linuxfr.org/img/687474703a2f2f7069782e746f696c652d6c696272652e6f72672f75706c6f61642f6f726967696e616c2f313436343130373131362e706e67/1464107116.png" alt="Système de configuration" title="Source : http://pix.toile-libre.org/upload/original/1464107116.png"><br>
Jusque‐là, l’installation venait avec une multitude de paquets <code>yunohost-config-*</code>. Tout a été rassemblé dans l’unique paquet <em>yunohost</em> !</p>
<p>Ceci a été rendu possible en améliorant la façon dont les différents services gérés par YunoHost (Nginx, Postfix, rspamd, etc.) sont configurés. YunoHost dispose maintenant de modèles de configurations de base (<em>templates</em>) pour les services.</p>
<p>De plus, une nouvelle commande, disponible uniquement en ligne de commande pour l’instant, permet de gérer les différentes configurations :<br><code>yunohost service regen-conf</code>.</p>
<p>Cette commande permet de les régénérer et d’afficher les changements en attente. Si vous modifiez les fichiers de configuration, sachez qu’ils ne seront jamais écrasés lors d’une mise à jour. Vous pourrez même afficher les différences entre le fichier de configuration et le modèle de base avec la commande : <br><code>yunohost service regen-conf --list-pending --with-diff</code>.</p>
<p>À noter que cette fonctionnalité s’adresse principalement aux administrateurs avancés souhaitant configurer eux‐mêmes les services.</p>
<h3 id="gestion-et-intégration-des-applications">Gestion et intégration des applications</h3>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f79756e6f686f73742e6f72672f696d616765732f79756e6f686f73745f7061636b6167652e706e67/yunohost_package.png" alt="Paquet YunoHost" title="Source : https://yunohost.org/images/yunohost_package.png"><br>
L’<a href="https://github.com/YunoHost-Apps">organisation YunoHost-Apps</a> a été créée sur GitHub afin de simplifier la coopération sur l’empaquetage des applications pour YunoHost. C’est aussi un très bon moyen de recenser les applications et d’améliorer leur visibilité.</p>
<p>La façon dont sont gérées les applications multi‐instances (le fait de pouvoir installer une application plusieurs fois) a été revue.</p>
<p>De plus, pour ceux qui maintiennent (ou désirent maintenir !) une application, des <a href="https://yunohost.org/#/packaging_apps_helpers">commandes pratiques (<em>helpers</em>) en shell</a> sont maintenant disponibles pour faciliter l’empaquetage, notamment dans les tâches courantes (génération d’un mot de passe, création d’une base de données MySQL…). Des exemples sont donnés dans l’<a href="https://github.com/YunoHost/example_ynh">application d’exemple</a>.</p>
<p>Pour plus de détails, voir <a href="https://forum.yunohost.org/t/news-about-app-management-and-packaging-in-yunohost-2-4/1379"><em>News about apps management and packaging in YunoHost 2.4</em></a>.</p>
<h3 id="migration-des-services">Migration des services</h3>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f75706c6f61642e77696b696d656469612e6f72672f77696b6970656469612f636f6d6d6f6e732f7468756d622f362f36382f4d6172696164622d7365616c2d62726f776e746578742e7376672f32343070782d4d6172696164622d7365616c2d62726f776e746578742e7376672e706e67/240px-Mariadb-seal-browntext.svg.png" alt="Logo MariaDB" title="Source : https://upload.wikimedia.org/wikipedia/commons/thumb/6/68/Mariadb-seal-browntext.svg/240px-Mariadb-seal-browntext.svg.png"><br>
- migration du système de base de données MySQL vers sa divergence (<em>fork</em>) communautaire <a href="https://mariadb.org">MariaDB</a> ;<br><img src="//img.linuxfr.org/img/68747470733a2f2f79756e6f686f73742e6f72672f696d616765732f727370616d642e706e67/rspamd.png" alt="Logo rspamd" title="Source : https://yunohost.org/images/rspamd.png"><br>
- migration du système de suppression du courriel indésirable d’amavis/spamassassin vers l’anti‐pourriel plus léger (pour La Brique Internet) <a href="https://rspamd.com"><em>rspamd/rmilter</em></a> avec l’ajout des configurations courriel <a href="http://dkim.org">DKIM</a> et <a href="https://dev.yunohost.org/issues/233">DMARC</a> par défaut.</p>
<h3 id="autres-fonctionnalités">Autres fonctionnalités</h3>
<p>On peut également noter l’ajout :</p>
<ul>
<li>d’un <a href="https://dev.yunohost.org/issues/39">système de diagnostic</a> qui donne des informations sur l’instance de YunoHost, qui est accessible en ligne de commande (<code>yunohost tools diagnosis</code>) et via l’interface d’administration dans la section <em>Outils</em>. Cet outil remonte les informations suivantes :
<ul>
<li>les versions de Debian, du noyau Linux et des paquets YunoHost,</li>
<li>l’espace libre, l’utilisation de la mémoire vive et de la partition d’échange (<em>swap</em>),</li>
<li>la liste des services et leurs statuts, la liste des applications installées,</li>
<li>les adresses IP et les noms de domaine peuvent également être récupérés en mode privé ;</li>
</ul>
</li>
<li>d’une fonction de génération automatique de la zone DNS des noms de domaines qui pourront directement être placés dans la zone DNS de son bureau d’enregistrement. Ils sont accessibles dans la partie <em>Domains</em> de l’interface d’administration et avec la commande : <code>yunohost domain dns-conf exemple.tld</code>.</li>
</ul><h2 id="organisation-du-projet">Organisation du projet</h2>
<p>En novembre 2016, suite à de longues discussions, l’équipe a clarifié le fonctionnement, la répartition des rôles et le processus de contribution au sein du projet. L’objectif du projet YunoHost a été défini comme <em>rendre accessible au plus grand nombre l’installation et l’administration d’un serveur, sans délaisser la qualité et la fiabilité du logiciel</em>, ceci grâce à un logiciel libre, entièrement communautaire et reposant sur des applications libres existantes. L’équipe propose de se limiter le projet au simple logiciel et de ne pas gérer les services auxiliaires liés (support payant, DNS, hébergement…). Plus d’informations sont disponibles dans le <a href="https://yunohost.org/#/project_organization_fr">document de l’organisation du projet YunoHost</a>.</p>
<h2 id="yunohost25-chelsea-manning">YunoHost 2.5 (<em>Chelsea Manning</em>)</h2>
<p>Sortie le 2 février 2017, la version 2.5 a été nommée <em>Chelsea Manning</em>, en hommage à son combat, pour célébrer sa libération prochaine et inciter chacun à agir à sa propre mesure.</p>
<h3 id="intégration-de-letsencrypt">Intégration de Let’s Encrypt</h3>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f75706c6f61642e77696b696d656469612e6f72672f77696b6970656469612f656e2f302f30372f4c6574253237735f456e63727970742e737667/Let%27s_Encrypt.svg" alt="Logo de Let’s Encrypt" title="Source : https://upload.wikimedia.org/wikipedia/en/0/07/Let%27s_Encrypt.svg"><br>
Let’s Encrypt a été intégré dans le cœur de YunoHost. Il est possible de manipuler le gestionnaire de certificats depuis l’interface d’administration comme depuis la ligne de commande.</p>
<h3 id="correctifs">Correctifs</h3>
<p>Cette nouvelle version a aussi été l’occasion pour nous de corriger un nombre conséquent de bogues, concernant la post‐installation (notamment le trop fameux « <em>admin user doesn’t exist</em> »), la gestion des courriels et des pourriels, la génération de clef DNSSEC, l’installation sur du matériel lent, sur OLinuXino et Raspberry <em>Pi</em> et la prise en compte des délais de chargements que peuvent rencontrer certaines machines de faible puissance ou avec une mauvaise connexion.</p>
<h3 id="autres">Autres</h3>
<ul>
<li>une mise à jour de la <a href="https://yunohost.org/#/install_fr">documentation d’installation</a> ;</li>
<li>des nouvelles images ISO ;</li>
<li>des images pour les Raspberry 0, 1, 2 et 3.</li>
</ul><p>Tous les détails sont disponibles dans la <a href="https://dev.yunohost.org/versions/7">feuille de route de la version 2.5</a> sur Redmine, dans les notes de version (<a href="https://github.com/YunoHost/yunohost/releases"><em>yunohost</em></a>, <a href="https://github.com/YunoHost/yunohost-admin/releases"><em>yunohost-admin</em></a>, <a href="https://github.com/YunoHost/moulinette/releases">moulinette</a> et <a href="https://github.com/YunoHost/ssowat/releases">SSOwat</a>) et dans <a href="https://github.com/YunoHost/yunohost/milestone/1?closed=1">l’échéancier GitHub</a>.</p>
<h3 id="pour-les-empaqueteurs-dapplications">Pour les empaqueteurs d’applications</h3>
<p>Jusqu’à présent, les critères qu’une application devait remplir pour devenir officielle ou être considérée comme étant de qualité étaient un peu flous et informels. Un gros travail a été fait à la fois pour formaliser ces critères et règles, donnant ainsi un chemin à suivre aux empaqueteurs et pour améliorer la qualité en introduisant des tests automatiques :</p>
<ul>
<li>l’introduction de niveaux pour les applications, à la fois pour indiquer, tant aux utilisateurs ce à quoi s’attendre, que pour guider les développeurs et les motiver ;</li>
<li>une fois atteint le niveau 6, une application peut être proposée pour devenir officielle ;</li>
<li>la conception de tests automatiques pour s’assurer qu’une application fonctionne comme prévu en tout moment et pour pouvoir automatiser le niveau à attribuer ;</li>
<li>un gros travail, encore en cours, pour faire un document de référence sur comment bien faire une application (les YEP). Plus de détails dans <a href="https://forum.yunohost.org/t/news-for-apps-packaging-automated-testing-procedure-to-make-an-application-official-new-quality-level-for-apps-and-standard-for-app-packaging/2399"><em>cette annonce</em></a> ;</li>
<li>migration d’ownCloud vers NextCloud.</li>
</ul><h2 id="infrastructure-du-projet-yunohost">Infrastructure du projet YunoHost</h2>
<p><img src="//img.linuxfr.org/img/687474703a2f2f7069782e746f696c652d6c696272652e6f72672f75706c6f61642f6f726967696e616c2f313436343130383138352e706e67/1464108185.png" alt="Logo de Redmine" title="Source : http://pix.toile-libre.org/upload/original/1464108185.png"></p>
<ul>
<li>mise en place du <a href="https://dev.yunohost.org">système de suivi de bogues Redmine</a> dédié au suivi des bogues et améliorations. Depuis septembre 2015, une instance de l’outil <a href="https://redmine.org">Redmine</a> est hébergée pour les projets YunoHost et <a href="https://labriqueinter.net"><em>La Brique Internet</em></a> ;
<img src="//img.linuxfr.org/img/68747470733a2f2f75706c6f61642e77696b696d656469612e6f72672f77696b6970656469612f636f6d6d6f6e732f362f36392f5765626c6174655f6c6f676f2e737667/Weblate_logo.svg" alt="Logo de Weblate" title="Source : https://upload.wikimedia.org/wikipedia/commons/6/69/Weblate_logo.svg">
</li>
<li>mise en place de notre <a href="https://translate.yunohost.org">outil de traduction</a> basé sur le logiciel libre <a href="https://weblate.org">Weblate</a>, ce qui a permis de se séparer du service propriétaire <a href="https://www.transifex.com">Transifex</a>.
YunoHost est conçu pour être intégralement traduit, que ce soit au niveau de la ligne de commande ou pour les interfaces graphiques. Il y a actuellement une dizaine de langues disponibles à la traduction ;</li>
<li>mise en place de <a href="https://letsencrypt.org">certificats <em>Let’s Encrypt</em></a> sur tous les services ;</li>
<li>
<a href="https://demo.yunohost.org">nouvelle instance de démonstration</a> ;</li>
<li>mise en place d’un service de <a href="https://paste.yunohost.org"><em>paste</em></a>. Utilisable avec la <code>commande | yunopaste</code>, pour obtenir un lien.</li>
</ul><h2 id="outils-de-développement">Outils de développement</h2>
<p><a href="https://github.com/YunoHost/ynh-dev">YnH-Dev</a> permet de créer, sur son ordinateur de bureau, une machine virtuelle basée sur <a href="https://www.vagrantup.com/">Vagrant</a> pour développer et tester la version de YunoHost de votre choix (stable, test, instable).</p>
<h3 id="ci-apps">CI-Apps</h3>
<ul>
<li>un outil d’<a href="https://fr.wikipedia.org/wiki/int%C3%A9gration%20continue" title="Définition Wikipédia">intégration continue</a> dont les <a href="https://github.com/YunoHost/package_check">tests unitaires sont écrits en Shell</a> et basé sur <a href="https://github.com/YunoHost/CI_package_check">Jenkins et LXC</a> automatise les tests sur les applications ;</li>
<li>un <a href="https://github.com/YunoHost/package_linter">analyseur statique</a> vérifie le manifeste, les scripts des applications et donne des conseils sur les bonnes pratiques d’empaquetage.</li>
</ul><h3 id="ci-core">CI-Core</h3>
<p>Un <a href="https://github.com/YunoHost/bicyclette">outil d’intégration continue</a> a été démarré pour le bon fonctionnement du cœur de YunoHost.</p>
<h2 id="futurs-développements">Futurs développements</h2>
<p>À moyen terme, nous allons bien entendu continuer de corriger les bogues pour améliorer la stabilité de YunoHost, mais aussi travailler sur la documentation et l’internationalisation. La mise en place de tests automatiques est également en cours afin de contribuer aux actions de renforcement de la stabilité. Plusieurs chantiers sont prévus, notamment pour améliorer la gestion des applications, le système de sauvegardes, la configurabilité et mettre en place un système de notifications.</p>
<h2 id="remerciements">Remerciements</h2>
<p>Un grand merci à tous les contributeurs qui continuent de faire vivre le projet. <3</p>
<p>L’équipe de YunoHost, les nombreux empaqueteurs et mainteneurs d’applications, les traducteurs d’interfaces, les testeurs, rapporteurs de bogues, les contributeurs de <a href="https://labriqueinter.net"><em>La Brique Internet</em></a> et bien d’autres qui ne sont pas cités…</p>
<h2 id="venez-contribuer">Venez contribuer !</h2>
<p>Si vous aimez YunoHost, n’hésitez pas à <a href="https://yunohost.org/#/contribute_fr">filer un coup de main</a> ! Il n’est pas nécessaire de coder, ni même de s’investir sur le long terme pour contribuer : le simple fait de <em>parler du projet</em> est une contribution en soi. Vous pouvez partager votre expérience en <em>documentant</em>, <em>aidant les autres</em> ou en <em>rapportant des bogues</em>. Vous pouvez également participer à la <em>traduction</em> !</p>
<p>Pour ceux plus proches de la technique, n’hésitez pas à regarder comment <a href="https://yunohost.org/#/packaging_apps_fr">empaqueter des applications</a> ou <a href="https://yunohost.org/#/dev_fr">développer et contribuer sur le cœur de Yunohost</a>. Nous recherchons en particulier des développeurs Python et/ou des personnes familières avec les paquets Debian.</p></div><div><a href="https://linuxfr.org/news/evolutions-des-projets-la-brique-internet-et-yunohost-des-versions-2-2-2-4-et-2-5.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/109070/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/evolutions-des-projets-la-brique-internet-et-yunohost-des-versions-2-2-2-4-et-2-5#comments">ouvrir dans le navigateur</a>
</p>
M5oulDavy Defaudjibecfedpalm123Benoît SibaudZeroHeurecaptainsqrt2quent57NoobinuxNÿcoNils Ratusznikhttps://linuxfr.org/nodes/109070/comments.atomtag:linuxfr.org,2005:News/371442016-03-04T08:52:12+01:002016-03-04T08:52:12+01:00Sortie de LemonLDAP::NG 1.9Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p><a href="http://lemonldap-ng.org">LemonLDAP::NG</a> est un logiciel libre d'authentification unique (<a href="https://fr.wikipedia.org/wiki/SSO" title="Définition Wikipédia">SSO</a>), contrôle d'accès et fédération d'identités. La version 1.9.0 a été publiée le 2 mars 2016.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f6c656d6f6e6c6461702d6e672e6f72672f77656c636f6d652f6c6f676f5f6c6c6e675f36303070782e706e67/logo_llng_600px.png" alt="Logo LemonLDAP::NG" title="Source : http://lemonldap-ng.org/welcome/logo_llng_600px.png"></p>
<p>LemonLDAP::NG est écrit en Perl et publié sous licence GPL. Cette nouvelle version majeure apporte de grands changements au logiciel comme le support OpenID Connect, une nouvelle interface d'administration et la compatibilité Nginx.</p></div><ul><li>lien nᵒ 1 : <a title="http://forge.ow2.org/forum/forum.php?forum_id=2506" hreflang="en" href="https://linuxfr.org/redirect/96565">Annonce de la sortie sur la forge OW2</a></li><li>lien nᵒ 2 : <a title="http://lemonldap-ng.org/download" hreflang="en" href="https://linuxfr.org/redirect/96566">Téléchargement</a></li><li>lien nᵒ 3 : <a title="http://lemonldap-ng.org/screenshots" hreflang="en" href="https://linuxfr.org/redirect/96567">Captures d'écran</a></li><li>lien nᵒ 4 : <a title="https://linuxfr.org/news/sortie-de-lemonldap-ng-1-4-6" hreflang="fr" href="https://linuxfr.org/redirect/96568">Précédente dépêche sur LinuxFR</a></li><li>lien nᵒ 5 : <a title="https://hub.docker.com/r/coudot/lemonldap-ng/" hreflang="fr" href="https://linuxfr.org/redirect/96569">LemonLDAP::NG sur DockerHub</a></li><li>lien nᵒ 6 : <a title="http://lemonldap-ng.org/references" hreflang="en" href="https://linuxfr.org/redirect/96570">Références</a></li></ul><div><h2 id="présentation-des-nouveautés">Présentation des nouveautés</h2>
<h3 id="openid-connect">OpenID Connect</h3>
<p><a href="http://openid.net/connect/">OpenID Connect</a> est un nouveau protocole de <a href="https://fr.wikipedia.org/wiki/SSO" title="Définition Wikipédia">SSO</a> porté par la fondation OpenID et basé sur le framework OAuth 2.0. Ce standard est adopté par de nombreux acteurs, comme par exemple <a href="https://developers.google.com/identity/protocols/OpenIDConnect">Google</a> qui l'utilise pour son authentification en remplacement de OpenID 2.0. L'État Français a lui aussi fait le choix de OpenID Connect pour sa nouvelle plate-forme <a href="https://doc.integ01.dev-franceconnect.fr/">France Connect</a>.</p>
<p>Il est donc désormais possible d'utiliser LemonLDAP::NG pour s'authentifier sur ces services :</p>
<ul>
<li><a href="http://lemonldap-ng.org/documentation/latest/authopenidconnect_google">Authentification sur Google</a></li>
<li><a href="http://lemonldap-ng.org/documentation/latest/authopenidconnect_franceconnect">Authentification sur France Connect</a></li>
</ul><p>En plus du rôle de client (Relying Party), LemonLDAP::NG a aussi le rôle de serveur (OpenID Provider) ce qui lui permet d'authentifier toute application compatible avec ce protocole.</p>
<h3 id="interface-dadministration">Interface d'administration</h3>
<p>L'interface d'administration, appelée aussi Manager, a été réécrite avec AngularJS afin d'améliorer son ergonomie et son utilisation. Pour les habitués des précédentes versions, sachez que désormais vous n'aurez plus à cliquer sur "Appliquer" à chaque changement de valeur, et que vous pourrez éditer tous les en-têtes ou toutes les règles dans un seul écran.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f6c656d6f6e6c6461702d6e672e6f72672f2f5f6d656469612f73637265656e73686f74732f312e392f6c656d6f6e6c6461705f6e675f6d616e616765725f2d5f323031362d30332d30325f31362e31362e32382e706e67/lemonldap_ng_manager_-_2016-03-02_16.16.28.png" alt="Manager" title="Source : http://lemonldap-ng.org//_media/screenshots/1.9/lemonldap_ng_manager_-_2016-03-02_16.16.28.png"></p>
<p>Cette nouvelle interface permet la navigation entre les différentes versions de la configuration, l'import/export de configuration (au format JSON), la duplication d'hôte virtuels.</p>
<p>L'interface propose aussi toujours un explorateur de sessions, avec comme nouveauté la possibilité de parcourir les sessions persistantes (sessions conservées entre chaque connexion d'un utilisateur). Le gestionnaire de notification est aussi présent, au même niveau fonctionnel que dans les précédentes versions.</p>
<h3 id="support-nginx">Support Nginx</h3>
<p>Bonne nouvelle pour les réfractaires à Apache, la réécriture du code du Handler (agent assurant la protection des applications) passant par l'implémentation d'une API a permis d'offir un support FastCGI. Un petit serveur FastCGI est désormais livré avec LemonLDAP::NG (paquet lemonldap-ng-fastcgi-server) et permet de contacter le portail, le Manager et le Handler depuis Nginx. </p>
<h3 id="attributs-cas">Attributs CAS</h3>
<p>Le serveur CAS de LemonLDAP::NG implémentait jusqu'à présent les versions 1.0 et 2.0. Désormais, une partie du protocole CAS 3.0 est pris en charge avec la possibilité de partager des attributs dans les réponses de validation CAS. Cela permet en particulier d'utiliser l'API <a href="https://wiki.jasig.org/display/CASC/phpCAS">PHP-CAS</a> et sa fonction getAttributes().</p>
<h3 id="mongodb">MongoDB</h3>
<p><a href="https://www.mongodb.org/">MongoDB</a> est utilisable pour le stockage des configurations et des sessions. Il s'ajoute à la liste des nombreux backends disponibles : Fichiers (JSON), DBI (MySQL, PgSQL, SQLite, …), LDAP, Redis.</p>
<h2 id="mettre-à-jour-sa-version">Mettre à jour sa version</h2>
<p>L'utilisation de fonctionnalités récentes de Perl contraint à restreindre les systèmes sur lesquels cette nouvelle version peut être installée. En particulier CentOS 5 et CentOS 6 ne sont pas utilisables.</p>
<p>D'autres changements techniques importants ont eu lieu et il est préférable d'avoir bien pris connaissances des <a href="http://lemonldap-ng.org/documentation/latest/upgrade">notes de mise à jour</a> avant de se lancer.</p>
<p>Enfin, nous espérons que cette nouvelle version apportera bonheur et prospérité à votre système d'information. Si vous êtes un utilisateur satisfait, vous pouvez le dire sur <a href="https://www.openhub.net/p/lemonldap-ng">OpenHub</a> et également faire partie de nos <a href="http://lemonldap-ng.org/references">références</a>.</p></div><div><a href="https://linuxfr.org/news/sortie-de-lemonldap-ng-1-9.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/108354/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/sortie-de-lemonldap-ng-1-9#comments">ouvrir dans le navigateur</a>
</p>
OUDOT ClémentZeroHeureNÿcohttps://linuxfr.org/nodes/108354/comments.atomtag:linuxfr.org,2005:Post/361672015-12-01T12:02:15+01:002015-12-01T12:02:15+01:00Comment faire du SSO sur un site avec pleins de cms ?<p>Bonjour,</p>
<p>Je gère un site qui est composé de plusieurs CMS : dokuwki, simple machine forum, dotclear, stikked et etherpad-lite entre autre.</p>
<p>Chaque module fait très bien son travail. Le problème c'est que les utilisateurs doivent s'identifier sur chacun de ces services. Je cherche donc à leur offrir une solution où ils se connecteraient à tout en une fois. </p>
<p>Je ne suis pas formée du tout aux technologies web et SSO. J'apprends sur le tas, au fur et à mesure, et je me casse la gueule assez souvent. Je suis déjà assez fière d'arriver à faire tourner ces trucs…</p>
<p>J'ai commencé à explorer de mon côté sur comment gérer ça, j'en suis arrivé à la formule ldap + lemonldap::NG. </p>
<p>Installer ldap ça n'a déjà pas été de la tarte. D'autant que dans les cms listés, certains n'ont pas de module pour se connecter à LDAP, ou alors ça marche mal. En fait, en dehors de dokuwiki, les autres ne sont pas reliés à ldap. Et depuis, on ne peut plus créer de compte sur dokuwiki…</p>
<p>Quand à lemonldap::NG, je n'arrive pas à le connecter à la base ldap ; en fait j'ai même réussi à bloquer l'identification, je suis bonne pour le réinstaller <sup>_<sup>"</sup></sup></p>
<p>Je précise que mes bidouilles ont lieu sur un serveur de test, qui est dans un sous-domaine du serveur en prod, je pense que ça aide pas côté dns… Bref.</p>
<p>Au secours.</p>
<p>J'ai besoin d'aide pour trouver une solution. Je ne suis même pas sûre d'être partie dans la bonne direction. Est-ce qu'il y a plus simple ? Et sinon, comment je peux m'en sortir ? La doc que je trouve s'adresse à des gens ayant déjà un sacré niveau, pour qui configurer un proxy ne demande même pas de détail… j'en suis encore à assimiler ce que ça peut être.</p>
<p>Je cherche des gens qui pourraient me guider dans cette jungle, m'aider à comprendre ce qui semble évident une fois qu'on sait. Ou un logiciel super simple à prendre en main qui me fera tout ça sans que je rame !</p><div><a href="https://linuxfr.org/forums/programmationweb/posts/comment-faire-du-sso-sur-un-site-avec-pleins-de-cms.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/107519/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/forums/programmationweb/posts/comment-faire-du-sso-sur-un-site-avec-pleins-de-cms#comments">ouvrir dans le navigateur</a>
</p>
Zatalyzhttps://linuxfr.org/nodes/107519/comments.atomtag:linuxfr.org,2005:Diary/361672015-10-23T20:04:50+02:002015-10-24T18:31:44+02:00Disputatio : Samba, Kerberos et LDAPLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li><a href="#mais-quel-est-le-sujet-au-juste">Mais quel est le sujet au juste ?</a></li>
<li>
<a href="#ce-que-jai-lhabitude-de-r%C3%A9aliser">Ce que j’ai l’habitude de réaliser</a><ul>
<li><a href="#annuaire-ldap-pour-lauthentification-dapplication-web">Annuaire LDAP pour l’authentification d’application web</a></li>
<li><a href="#annuaire-ldap-avec-authentification-kerberos-bas%C3%A9e-sur-ldap">Annuaire LDAP avec authentification Kerberos basée sur LDAP</a></li>
<li><a href="#mon-exp%C3%A9rience-samba">Mon expérience Samba</a></li>
</ul>
</li>
<li><a href="#ce-qui-est-encore-un-grand-myst%C3%A8re-pour-moi">Ce qui est encore un grand mystère pour moi</a></li>
<li><a href="#chez-vous-et-dans-le-futur-comment-cest">Chez vous et dans le futur, comment c’est ?</a></li>
</ul><p>Cher journal, je me retrouve aujourd’hui à préparer la montée en version de plusieurs serveurs Samba de plusieurs organisations et puisqu’il faut repasser par la case labo pour tester et valider la migration, c’est l’occasion pour moi de remettre à plat certains choix techniques passés que j’ai faits ou que d’autres ont faits avant moi ou avec moi. Aussi, j’hérite de certains choix techniques qui ont été faits à une époque où il n’y avait pas le choix tout simplement, car certains parcs ont vraiment un très long passé !</p>
<p>Sur un autre plan, j’ai une certaine expérience de LDAP comme annuaire d’utilisateur/groupe/mots de passe, et un peu de Kerberos. Mais toutes ces expériences ne sont pas liées entre elles, et là, c’est nouveau, il va peut-être falloir que je connecte tout cela. Ce journal est donc à la fois un partage de mon expérience, un appel à témoigner de la vôtre, et une invitation à débattre de diverses solutions.</p>
<h2 id="mais-quel-est-le-sujet-au-juste">Mais quel est le sujet au juste ?</h2>
<p>Je rappelle en gros les différentes technologies :</p>
<ul>
<li><p><a href="https://fr.wikipedia.org/wiki/Samba" title="Définition Wikipédia">Samba</a>, un service de domaine compatible avec le service Active Directory de Microsoft. C’est très utile pour fournir des services d’authentification (machines, utilisateur, groupes) et des dossiers partagés. C’est ce qui fait qu’en vous asseyant devant une machine quelconque de l’entreprise, vous entrez votre identifiant et votre mot de passe, et hop vous avez votre bureau et les dossiers en réseau auxquels vous êtes abonnés. Samba est un logiciel qui fournit plusieurs services et prend en charge divers protocoles, il est incontournable si vous voulez fournir un réseau d’entreprise compatible avec des clients Microsoft.</p></li>
<li><p><a href="https://fr.wikipedia.org/wiki/Kerberos" title="Définition Wikipédia">Kerberos</a>, c’est un système d’authentification : en gros il gère une base d’utilisateurs et c’est lui qui donne les autorisations et les accès aux services qui se basent là dessus. Avec Kerberos on pourrait par exemple authentifier les accès à des dossiers réseau CIFS (SMB) ou NFS, ou encore les accès SSH (avec <a href="https://fr.wikipedia.org/wiki/OpenSSH" title="Définition Wikipédia">OpenSSH</a>. Kerberos est un protocole, sous GNU/Linux on utilisera généralement le logiciel MIT Kerberos (krb5).</p></li>
<li><p><a href="https://fr.wikipedia.org/wiki/LDAP" title="Définition Wikipédia">LDAP</a>, c’est un annuaire. Dit très rapidement, c’est une base de donnée dédiée aux services d’annuaire, avec un protocole standardisé. Ça peut servir à différente choses, comme par exemple conserver les contacts de votre carnet d’adresse (il y a souvent du LDAP derrière un service <a href="https://fr.wikipedia.org/wiki/CardDAV" title="Définition Wikipédia">CardDAV</a> par exemple). Vous pouvez mettre un peu n’importe quoi dans un LDAP, mais ce qui nous intéresse ici, c’est que LDAP peut aussi être un annuaire d’identifiant et de groupe (un <code>/etc/passwd</code>, <code>shadow</code>, <code>group</code> en réseau quoi), surtout qu’il est très facile pour LDAP de contenir son propre annuaire d’utilisateur pour gérer les accès à LDAP (un peu comme MySQL a sa propre base de données de comptes pouvant accéder aux bases de données de MySQL). Beaucoup d’applications peuvent utiliser LDAP pour authentifier leurs utilisateurs, comme des applications web par exemple, et beaucoup de ceux qui ne savent le faire d’eux même ont un greffon pour ça. LDAP est un protocole, on utilisera généralement <a href="https://fr.wikipedia.org/wiki/OpenLDAP" title="Définition Wikipédia">OpenLDAP</a> sous GNU/Linux.</p></li>
</ul><p>Évidemment, tout cela se recoupe un peu. Samba authentifie des utilisateurs, comme Kerberos et comme LDAP peut le faire. Kerberos peut sauvegarder ses données dans un annuaire LDAP. Kerberos peut gérer l’accès à un annuaire LDAP (vous vous authentifiez auprès de Kerberos d’abord, et une fois votre session Kerberos ouverte, vous demandez autant d’accès à LDAP que vous voulez). Samba peut fournir un service Kerberos. Samba peut utiliser un annuaire LDAP pour y placer ses données. Samba peut s’authentifier auprès d’un annuaire LDAP. Samba peut utiliser un service Kerberos tiers. Etc.</p>
<h2 id="ce-que-jai-lhabitude-de-réaliser">Ce que j’ai l’habitude de réaliser</h2>
<p>Voici quelques exemples de configurations que j’ai eu à réaliser :</p>
<h3 id="annuaire-ldap-pour-lauthentification-dapplication-web">Annuaire LDAP pour l’authentification d’application web</h3>
<p>J’ai fait cela pour plusieurs projets. J’ai eu par exemple un annuaire LDAP qui servait de service d’authentification à l’application de gestion de projet <a href="https://fr.wikipedia.org/wiki/Redmine" title="Définition Wikipédia">Redmine</a> (forum, wiki, gestion de tickets, calendrier de tâches, dépôt de code source etc.) et à l’application <a href="https://fr.wikipedia.org/wiki/ownCloud" title="Définition Wikipédia">ownCloud</a> (synchonisation de fichiers, partage de fichiers en ligne, gestionnaire de contacts, calendrier et divers éditeurs/visualisateurs de documents en ligne). LDAP gérait donc les accès des utilisateurs et leur appartenance aux groupes (qui étaient donc répliqués entre Redmine et ownCloud).</p>
<p>Il y avait aussi, reposant sur ce même LDAP, un service XMPP (Jabber) de messagerie instantanée basé sur le logiciel <a href="https://fr.wikipedia.org/wiki/Ejabberd" title="Définition Wikipédia">Ejabberd</a>. Ce n’était pas une application web, mais ça faisait partie de ce projet.</p>
<p>J’ai eu un autre projet où il s’agissait d’avoir une base d’utilisateurs commune à une galaxie de blogs <a href="https://fr.wikipedia.org/wiki/Wordpress" title="Définition Wikipédia">Wordpress</a> : plusieurs instances Wordpress, certaines en « Multisite », toutes les instances et donc tous les blogs servis devaient être accessibles avec le même couple identifiant/mot de passe. Malheureusement, Wordpress ne prend pas en charge LDAP par défaut, il faut utiliser un greffon. Comme l’utilisation d’un greffon tiers n’a pas le même niveau de fiabilité, j’ai limité sa fonctionnalité : il ne fait qu’authentifier les utilisateurs.</p>
<p>Quand une personne tente de s’identifier auprès de WordPress, WordPress demande à LDAP, et si LDAP répond « c’est OK », LDAP ouvre la session (et crée l’utilisateur dans WordPress si besoin). Je n’ai pas délégué la gestion des groupes à LDAP et donc au greffon LDAP. La seule chose que fait le greffon, c’est transmettre l’identifiant/mot de passe à LDAP et attend une réponse oui/non, il n’y a aucun mot de passe LDAP sauvegardé dans la configuration du greffon, si WordPress devait être capable de créer des utilisateurs ou des groupes dans LDAP, il faudrait donner un accès privilégié au greffon, qui est un greffon tiers, et ce ne serait pas sûr du tout.</p>
<p>D’ailleurs, je le dis en passant, certaines applications ou greffons demandent un accès administrateur pour authentifier les utilisateurs, fuyez-les. Exigez toujours que l’authentification de l’utilisateur ne nécessite que les identifiants de l’utilisateur à authentifier, ce n’est pas à un compte LDAP privilégié d’authentifier les comptes utilisateurs. Coté LDAP, cela signifie qu’un anonyme doit avoir au moins le droit de s’authentifier lui-même.</p>
<h3 id="annuaire-ldap-avec-authentification-kerberos-basée-sur-ldap">Annuaire LDAP avec authentification Kerberos basée sur LDAP</h3>
<p>Attention, ça peut faire un peu mal à la tête.</p>
<p>Dans ce schéma, c’est Kerberos qui gère les accès à LDAP, mais c’est LDAP qui fournit à Kerberos le service de stockage des identifiants et des mots de passe.</p>
<p>En gros il y a quatre annuaires :</p>
<ul>
<li>L’annuaire d’utilisateur (un peu comme <code>/etc/passwd</code>) avec le nom de l’utilisateur, son adresse mail, sa date de naissance, son identifiant, mais le champ « mot de passe » est inutilisé. Les entrées utilisent le schéma utilisateur standard.</li>
<li>L’annuaire de groupe (un peu comme <code>/etc/group</code>), la liste des groupes auxquels peuvent être abonnés les utilisateurs. Les entrées utilisent le schéma groupe standard.</li>
<li>L’annuaire des identifiants kerberos, dans une arborescence à part (et un <a href="https://fr.wikipedia.org/wiki/FQDN" title="Définition Wikipédia">FQDN</a> différent) que personne ne peut lire à part Kerberos. Les entrées utilisent le schéma kerberos, pas le schéma ordinaire.</li>
<li>L’annuaire des <a href="https://fr.wikipedia.org/wiki/Access_Control_List">ACL</a> d’LDAP, présent par défaut évidemment, c’est lui détermine que Kerberos a accès seul à son annuaire seulement, et le reste au reste. Tout ça c’est de la tambouille interne mais il faut bien en parler.</li>
</ul><p>À cela j’avais ajouté une couche de compatibilité : si on n’est pas authentifié par Kerberos (le système ne le gère pas, par exemple une application web comme cité ci-dessus) et qu’on demande un accès à LDAP, LDAP peut le demander à Kerberos en sous main grâce à <a href="https://fr.wikipedia.org/wiki/SASL" title="Définition Wikipédia">SASL</a>.</p>
<p>Ce que cela signifie :</p>
<ul>
<li>L’utilisateur n’a absolument aucun accès à quoi que ce soit de proche ou de loin à son mot de passe (l’annuaire qui contient ses informations privées ne contient même pas le <a href="https://fr.wikipedia.org/wiki/hash" title="Définition Wikipédia">hash</a> de son mot de passe, ce champ est vide).</li>
<li>L’utilisateur peut sécuriser sa connexion LDAP avec Kerberos.</li>
<li>Les applications qui savent utiliser Kerberos peuvent utiliser Kerberos.</li>
<li>Les applications qui ne savent pas utiliser Kerberos mais LDAP peuvent authentifier leurs utilisateurs. C’est une régression, mais si les seules applications dans ce cas sont des services web vous êtes assez tranquilles. Vous pouvez choisir que LDAP ne soit pas disponible publiquement et que seul Kerberos le soit, les applications ne verront LDAP qu’en local. De toute façon, si c’est pour servir de base d’identifiants, il y a très peu de chances que vous deviez tirer une croix sur la sécurité de Kerberos : le mot de passe transite déjà par l’application et par https, qui sont autant de points d’attaque.</li>
<li>Toute application compatible SASL (qui est compatible Kerberos) peut authentifier des utilisateurs.</li>
</ul><p>Avec ça vous avez une base d’authentification commune pour tout ce que vous voulez : Samba, NFS, OpenSSH, IMAP, SMTP, applications web, comptes unix, bref, tout ce qui est compatible avec une authentification par <a href="https://fr.wikipedia.org/wiki/Pluggable_Authentication_Modules">PAM</a>, SASL, LDAP ou Kerberos. Concernant les applications web, il existe certainement des services <a href="https://fr.wikipedia.org/wiki/OpenID" title="Définition Wikipédia">OpenID</a> fondé sur LDAP, vous pouvez aussi utiliser <a href="https://fr.wikipedia.org/wiki/LemonLDAP" title="Définition Wikipédia">LemonLDAP</a>, et même Apache sait authentifier auprès de Kerberos ou LDAP, et Nginx a des modules pour cela également. Bref, dans le meilleur des cas, vos authentifications sont sécurisées par Kerberos, dans le meilleur des cas vous avez un mécanisme d’authentification unique <a href="https://fr.wikipedia.org/wiki/SSO" title="Définition Wikipédia">SSO</a> soit par Kerberos, soit par OpenID, et dans le pire des cas, vous avec un couple identifiant/mot de passe commun partout.</p>
<p>Les inconvénients sont :</p>
<ul>
<li>Tout cela est assez complexe à mettre en œuvre.</li>
<li>Les utilisateurs ne peuvent pas bénéficier des mécanismes applicatifs (ni même celui d’LDAP) pour changer son mot de passe ou pour en réclamer un nouveau. Je n’ai pas trouvé d’application dédié à cela qui sache se connecter à Kerberos pour faire ces tâches là (et optionnellement, qui sache aussi se connecter à LDAP pour récupérer l’adresse mail de l’utilisateur qui demande une procédure de récupération de mot de passe).</li>
</ul><h3 id="mon-expérience-samba">Mon expérience Samba</h3>
<p>Avec Samba j’ai déjà fait plein de choses amusantes. Comme expliqué en <a href="//linuxfr.org/users/chrisk/journaux/internet-explorer-4-failles-0-day-publiees#comment-1614847">commentaire d’un journal</a>, j’ai désactivé toute synchronisation sur les postes clients et minimisé au maximum les données hors-connexion du profil itinérant, qui est une vraie plaie. Contrairement à ce que j’ai vu dans certaines entreprises (et surtout, entendu d’employé de beaucoup d’entreprises), le bureau est en réseau, et le dossier <em>AppData</em> aussi.</p>
<p>Cela évite les pertes de données lorsque la même session est ouverte plusieurs fois (la dernière session fermée écrase la précédente), et cela évite surtout la perte de données lorsque la session est interrompue de manière intempestive (coupure de courant par exemple). Je ne comprends pas qu’une société de la taille de Microsoft ait pu concevoir un protocole de fichier réseau qui consiste à tout télécharger au début et à tout renvoyer à la fin, ce qui est défectueux par conception, car seule la connexion est garantie, pas la déconnexion.</p>
<p>Bref, En plus des partages réseau dans le poste de travail, tout ce qui est possible de mettre en réseau est mis en réseau. Ce qui n’est pas en réseau, en gros, c’est le <code>Local Settings</code>, qui est fait pour être local et qui est d’ailleurs conçu pour pouvoir être perdu. L’autre chose qui n’est pas en réseau, la grosse exception, c’est la ruche de registre utilisateur, qui est récupérée à la connexion et renvoyée à la déconnexion, mais ce n’est pas bien grave et il y a les sauvegardes pour ça. Là où j’étais assez fier, mais maintenant l’usage devient peu fréquent, c’est que le profile était commun entre Windows XP et suivants (<code>profile.v2</code> à partir de Vista), à l’exception bien sûr de la ruche.</p>
<p>Cela a permis de faire cohabiter Windows XP avec les nouveaux Windows pendant très longtemps, et a réduit beaucoup de coûts (il n’était pas nécessaire de remplacer tous les postes XP dès le premier jour où le premier windows 7 est arrivé). Ainsi, quel que soit la machine ou le Windows, les utilisateurs avaient le même Bureau, même <em>AppData</em>, même dossiers « Mes images » (en réseau bien sûr), et il était possible d’avoir ces mêmes dossiers (bureau, « Mes Images », « Ma Musique », etc.) communs sous GNU/Linux, même si ça ne s’est jamais fait (il y a très peu de client GNU/Linux).</p>
<p>Vu que le bureau est en réseau, il est très facile à un administrateur d’ajouter des raccourcis sur les bureaux des utilisateurs alors qu’ils sont connectés, ou faire d’autres tâches de maintenance de ce type. Ça permet aussi de mieux gérer les quotas (quand l’utilisateur dépasse, c’est tout de suite, pas à la déconnexion quand le profil itinérant est renvoyé) et ça permet donc de superviser les quotas en temps réel. Pour plus de détails, voir mon <a href="//linuxfr.org/users/chrisk/journaux/internet-explorer-4-failles-0-day-publiees#comment-1614847">précédent commentaire</a>.</p>
<p>J’ai fait ça pour plusieurs entités et plusieurs centaines d’utilisateurs utilisent ce type de configuration. Samba est vraiment un outil super. Mais je suis bien conscient qu’il y a encore beaucoup à explorer, et c’est là l’objet de mon journal : partager des solutions, recueillir vos témoignages, etc.</p>
<p>Je pose tout de suite la question : <em>Êtes-vous intéressés par mon partage d’expérience et par des journaux-tutoriels décrivant comment faire toutes ces choses que je décris ? Que ce soit sur le plan LDAP, Kerberos ou Samba ?</em></p>
<h2 id="ce-qui-est-encore-un-grand-mystère-pour-moi">Ce qui est encore un grand mystère pour moi</h2>
<p>Voici des réalisations que je n’ai encore jamais faites de toute ma vie :</p>
<ul>
<li>Utiliser Samba comme un service Kerberos.</li>
<li>Connecter Samba à un service LDAP.</li>
<li>Connecter Samba à un service Kerberos tiers.</li>
<li>Authentifier des utilisateurs Unix auprès d’un de ces deux mécanismes.</li>
</ul><p>A priori j’ai déjà appris tout ce qu’il fallait coté LDAP ou Kerberos pour que Samba puisse reposer sur un LDAP et/ou un Kerberos externe, mais je n’ai jamais « branché » un Samba sur un LDAP ou un Kerberos.</p>
<p>Les services Samba que j’administre pour le moment utilisent toujours LAN Manager, ce qui est déprécié par Microsoft depuis longtemps (cf. <a href="https://msdn.microsoft.com/en-us/library/bb742516.aspx">cet article sur MSDN</a>), et il n’est pas garanti que Microsoft n’abandonne pas cela bientôt, le support de LAN Manager est déjà désactivé par défaut coté client. Pour l’instant tous les Windows que j’ai vus étaient encore compatible à condition parfois d’activer le support déprécié (si ça vous intéresse de savoir comment faire, demandez en commentaire), mais ça pourrait changer.</p>
<p>Je n’ai jamais non-plus utilisé <code>slapd-smbk5pwd</code>. Ce greffon permettrait, selon ses concepteurs, de mettre à jour automatiquement les mots de passe dans Samba et dans Kerberos à chaque fois qu’un mot de passe est changé dans LDAP. Ainsi on pourrait, si je comprends bien, avoir trois services distincts et les mêmes mots de passe partout. Ceux-ci sont dupliqués, mais il y a un seul endroit pour les changer : LDAP. Ça peut être intéressant et peut énormément simplifier la configuration de l’ensemble, chacun serait alors configuré comme si le reste n’existait pas. Cela signifie que toute application qui sait parler à LDAP et qui permet à l’utilisateur de changer ou récupérer son mot de passe fonctionnerait pour tout, LDAP, Samba et Kerberos, le pied !</p>
<h2 id="chez-vous-et-dans-le-futur-comment-cest">Chez vous et dans le futur, comment c’est ?</h2>
<p>J’utilise donc encore Samba à l’ancienne, avec LAN Manager, et il serait temps de passer à Kerberos. Aussi, maintenant que j’ai de l’expérience dans LDAP, autant en profiter.</p>
<p>J’ai notamment des longueurs dans les connexions/déconnexions de Windows 7 et je soupçonne quelques <em>timeouts</em> sous-jacents, probablement que les nouveaux clients essaient des protocoles plus récents avant de passer au reste, en secours. Ça marche mais ça pourrait être mieux.</p>
<p>Il y a, semble-t-il, dix mille manières de combiner tout ça. Si j’ai bien compris, Samba peut aujourd’hui fournir lui-même le service Kerberos, ou utiliser un service tiers (merci de confirmer/infirmer selon votre expérience). Samba peut aussi utiliser un serveur LDAP tiers (merci aussi de confirmer/infirmer selon votre expérience). ;-)</p>
<p>Est-ce que par exemple cela signifie que Samba peut fournir un serveur Kerberos avec une base utilisateur fondée sur LDAP ? Si oui est-ce que Samba enregistre ses utilisateurs selon les schémas habituels (ce qui permettrait d’avoir le même annuaire pour les utilisateurs Samba et LDAP, ou dans un schéma différent dans une autre arborescence (comme fait Kerberos) ?</p>
<p>Et pour les « bonnes pratiques », que conseillez-vous et que faites-vous ?</p>
<p>Utiliser Samba pour tout faire est certainement l’option la plus pratique et la plus facile à court terme, mais pas nécessairement la plus robuste à long terme. Je me souviens de la dernière grande montée de version de Samba que j’ai faite il y a quelques années. Pendant des mois de labo tout allait bien : j’avais cloné quelques clients comme cobaye et reproduit le réseau avec de vrais postes identiques et une copie conforme du serveur en labo et la migration se faisait sans heurt. Mais ce fut la catastrophe lorsque j’ai appliqué la migration en vraie. En fait, si la migration de Samba a pris quelques minutes seulement, il a fallu réenregistrer dans le domaine 80% des machines, manuellement bien sûr sinon ce n’est pas drôle. La migration avait été commencée vers 19h après le départ du dernier employé, et à deux, on a terminé juste avant l’arrivée du premier employé, à 5h du matin, pas avant. L’horreur. Plus jamais ça !</p>
<p>Cette anecdote m’a appris qu’on a beau prendre ceinture et bretelle (n’en déplaise à Franck), ce n’est pas encore suffisant. On peut reproduire une copie exacte du réseau avec des copies exactes des clients avec exactement le même matériel, et rater une régression qui n’est visible que lorsqu’on y va en vrai. Tout ça parce que la maquette ne fait pas 20% du parc machine en terme de matériel (normal, c’est une maquette).</p>
<p>Je veux éviter que ce type de désagrément m’arrive dans le futur, et j’ai le pressentiment que tout faire reposer sur Samba n’est pas une mauvaise idée. Samba fait trop de choses.</p>
<p>J’imagine que lorsque j’aurais un Kerberos et ou un LDAP commun avec Samba, je m’en servirai pour autre chose qu’identifier des utilisateurs Windows, et je ne veux pas prendre le risque qu’un problème dans Samba mette en panne tous les autres hypothétiques services.</p>
<p>Je me dirige plutôt vers un LDAP/Kerberos à part, probablement sur une autre machine que je pourrais mettre à jour indépendamment de celle qui héberge Samba, mais je ne sais pas encore comment faire, si je dois utiliser <code>slapd-smbk5pwd</code> ou reproduire la très complexe mais très puissante configuration présentée plus haut.</p>
<p>J’ai une contrainte, j’ai déjà une très grande base de compte utilisateurs, et si je pouvais conserver les mots de passe ce serait bien.</p>
<p>LDAP permet d’importer des <em>hash</em> de mots de passe dans divers formats en indiquant le format, ça c’est vraiment super, ça signifierai que je peux importer plein de mots de passes et hop ça marche.</p>
<p>Le problème est que ce n’est pas compatible avec la configuration que j’ai présenté plus haut avec Kerberos, car le schéma Kerberos est différent que le schéma standard des annuaires utilisateurs dans LDAP, même quand la base utilisateur de Kerberos est stockée dans LDAP. Je ne crois pas pouvoir importer ces <em>hashs</em> dans Kerberos. Le greffon <code>slapd-smbk5pwd</code> ne résout pas non-plus le problème puisqu’il ne fonctionne que pour les mots de passe nouvellement créés.</p>
<p>Je peux aussi décider que tous les mots de passe des utilisateurs soient recréés, c’est bien de ne pas garder trop longtemps les mêmes mots de passe dit-on, ce serait l’occasion de tout rafraîchir. Si je décide cela ça peux choisir la solution technique que je veux.</p>
<p>Ce journal est donc aussi un appel à témoignage et une invitation à partager votre expérience :</p>
<p>Et vous, que faites-vous ? comment faites-vous ? Avez vous choisi de tout déléguer à Samba ou avez-vous distribué les services entre plusieurs logiciels ? Quels sont les problèmes que vous avez rencontré dans vos différentes configurations ?</p>
<p>Avez-vous des conseils pour configurer un Samba afin qu’il plaise au mieux aux outils Microsoft ?</p>
<p>Et en fait, quel est l’exact rôle de Kerberos, mais surtout de LDAP, pour Samba ? En gros, qu’est ce que fait Samba avec ces technologies ? Je n’ai pas encore dans ma tête un aperçu bien clair du paysage, si vous en savez plus, n’hésitez pas à éclairer ma lanterne, ça profitera à d’autres, la <em><a href="https://fr.wikipedia.org/wiki/disputatio" title="Définition Wikipédia">disputatio</a></em> est publique ! :-)</p>
<p>Voici donc ma <em>questio</em> développée, à vous le micro !</p><div><a href="https://linuxfr.org/users/illwieckz/journaux/disputatio-samba-kerberos-et-ldap.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/107143/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/illwieckz/journaux/disputatio-samba-kerberos-et-ldap#comments">ouvrir dans le navigateur</a>
</p>
Thomas Debessehttps://linuxfr.org/nodes/107143/comments.atomtag:linuxfr.org,2005:News/367812015-10-13T09:49:58+02:002015-10-13T09:49:58+02:00Sortie de LemonLDAP::NG 1.4.6Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p><a href="http://lemonldap-ng.org">LemonLDAP::NG</a> est un logiciel libre d'authentification unique (<a href="https://fr.wikipedia.org/wiki/SSO" title="Définition Wikipédia">SSO</a>), contrôle d'accès et fédération d'identités. La version 1.4.6 a été publiée le 9 octobre dernier, et vient consolider la branche 1.4 du logiciel en attendant la sortie de la version 2.0 prévue pour le début de l'année 2016.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f7069782e746f696c652d6c696272652e6f72672f75706c6f61642f6f726967696e616c2f313434343637393739302e706e67/1444679790.png" alt="Logo LL::NG" title="Source : http://pix.toile-libre.org/upload/original/1444679790.png"></p>
<p>LemonLDAP::NG est écrit en Perl et publié sous licence GPL. Cette version contient des correctifs importants et quelques nouvelles fonctionnalités.</p></div><ul><li>lien nᵒ 1 : <a title="http://forge.ow2.org/forum/forum.php?forum_id=2484" hreflang="en" href="https://linuxfr.org/redirect/95282">Annonce de la sortie sur la forge OW2</a></li><li>lien nᵒ 2 : <a title="http://lemonldap-ng.org/download" hreflang="en" href="https://linuxfr.org/redirect/95283">Téléchargement</a></li><li>lien nᵒ 3 : <a title="http://lemonldap-ng.org/screenshots" hreflang="en" href="https://linuxfr.org/redirect/95284">Captures d'écran</a></li><li>lien nᵒ 4 : <a title="https://linuxfr.org/news/sortie-de-lemonldap-ng-1-4" hreflang="fr" href="https://linuxfr.org/redirect/95285">Précédente dépêche sur LinuxFR</a></li><li>lien nᵒ 5 : <a title="https://hub.docker.com/r/coudot/lemonldap-ng/" hreflang="en" href="https://linuxfr.org/redirect/95286">LemonLDAP::NG sur DockerHub</a></li></ul><div><h3 id="gestion-du-temps-dinactivité">Gestion du temps d'inactivité</h3>
<p>Le code du Handler, l'agent Apache effectuant le contrôle d'accès aux applications Web, a été réécrit pour la version 1.4. Une des fonctions de ce Handler est la mise à jour d'un attribut de la session afin de mesurer l'activité d'un utilisateur. Si l'utilisateur est inactif trop longtemps, sa session peut être fermée et ainsi l'obliger à se réauthentifier. Ce mécanisme était malheureusement défaillant dans la version 1.4, il est désormais de nouveau opérationnel.</p>
<h3 id="chaînage-des-modules-dauthentification">Chaînage des modules d'authentification</h3>
<p>LemonLDAP::NG propose de nombreux modules d'authentification (LDAP, SQL, Apache, SSL, Radius, OpenID, SAML, CAS, …) qui peuvent être chaînés entre eux : si l'un échoue, le suivant est testé. Il est possible de chaîner plusieurs modules du même type (plusieurs annuaires LDAP par exemple), dans ce cas un label est ajouté au nom du module choisi ( <code>LDAP#labelA</code> ; <code>LDAP#labelB</code> ). Le nom des modules contenant le label est désormais conservé dans des attributs de sessions différents de ceux utilisés pour connaître le module d'authentification utilisé pour se connecter, afin que le label ne provoque pas d'erreur lors de l'appel à certaines fonctions.</p>
<h3 id="stockage-des-groupes-en-session">Stockage des groupes en session</h3>
<p>Depuis longtemps, LemonLDAP::NG permet de rechercher dans un annuaire LDAP les groupes auxquels appartient un utilisateur, et ce de manière récursive (gestion des groupes de groupes). Il est même possible de stocker en session plusieurs attributs du groupe (son identifiant, son nom, sa description, etc.). Cependant, si l'un de ces attributs était multivalué, une seule valeur seulement était conservée en session.</p>
<p>Ce comportement a été corrigé en version 1.4.6, introduisant une nouvelle représentation des groupes dans la session, sous forme de hash. La nouvelle variable de session se nomme <code>$hGroups</code>, et coexiste avec la variable historique <code>$groups</code> qui conserve une syntaxe de chaîne de caractère.</p>
<p>La nouvelle syntaxe permet une écriture plus élégante des règles d'accès, par exemple pour autoriser uniquement les utilisateurs du groupe « admin » :</p>
<pre><code class="perl"><span class="nb">defined</span> <span class="nv">$hGroups</span><span class="p">{</span><span class="s">'admin'</span><span class="p">}</span></code></pre>
<p>Pour rechercher une valeur particulière d'un attribut du groupe, <a>la fonction « groupMatch »</a> a été écrite</p>
<h3 id="politique-des-mots-de-passe-avec-active-directory">Politique des mots de passe avec Active Directory</h3>
<p>LemonLDAP::NG utilise Active Directory comme un annuaire LDAP pour authentifier les utilisateurs. L'intégration avec Active Directory s'améliore avec la possibilité de notifier les utilisateurs en cas d'expiration proche de leur mot de passe. Cela s'ajoute à la gestion déjà existante de la réinitialisation du mot de passe à la prochaine connexion. Ainsi le portail LemonLDAP::NG peut tout à fait permettre aux utilisateurs de gérer leur mot de passe Active Directory depuis leur navigateur web, sans être raccordés au domaine.</p>
<h3 id="image-docker">Image Docker</h3>
<p>Il est désormais possible de tester le logiciel dans une image Docker, la procédure est décrite ici : <a href="http://lemonldap-ng.org/documentation/latest/docker">http://lemonldap-ng.org/documentation/latest/docker</a>.</p>
<h3 id="une-version-20-en-préparation">Une version 2.0 en préparation</h3>
<p>Il reste encore du travail à l'équipe de développement de LemonLDAP::NG pour sortir la version 2.0. Celle-ci contiendra le support du protocole OpenID Connect, permettant entre autres de s'authentifier sur Google (Google ayant abandonné le support de OpenID 2.0 en début d'année), mais aussi sur <a href="https://doc.integ01.dev-franceconnect.fr/">France Connect</a>. De nombreuses parties du logiciel ont été réécrites, en particulier le Manager qui passe en AngularJS, et le Handler, plus modulaire, dans l'objectif de s'intégrer à d'autres serveurs que Apache.</p></div><div><a href="https://linuxfr.org/news/sortie-de-lemonldap-ng-1-4-6.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/107039/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/sortie-de-lemonldap-ng-1-4-6#comments">ouvrir dans le navigateur</a>
</p>
OUDOT Clémentbubar🦥ZeroHeurepalm123https://linuxfr.org/nodes/107039/comments.atomtag:linuxfr.org,2005:News/366532015-08-29T19:22:31+02:002015-08-29T19:22:31+02:00Sortie de Flarum 0.1.0-betaLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>Un équivalent en PHP/MySQL à Discourse vient d'être publié : Flarum. C'est un logiciel de forums, comprenant de nombreuses fonctionnalités et présentant un design sobre, élégant et moderne.</p>
<p>Il est compatible avec les smartphones, intègre un moteur de recherche, combine les fonctionnalités d'une liste de diffusion (on choisit ce qu'on veut recevoir comme message par mél) et les fonctionnalités d'un forum de discussion.</p>
<p>C'est un excellent outil pour remplacer les listes de discussion et les forums traditionnels. Le développement est très dynamique et des fonctionnalités futures très intéressantes : authentification unique <a href="https://fr.wikipedia.org/wiki/SSO" title="Définition Wikipédia">SSO</a>, intégration dans WordPress, mises à jour simplifiées, importation des données d'autres forums…</p>
<p>C'est libre (licence MIT) alors n'hésitez pas tester, signaler les bogues, aider à traduire.</p></div><ul><li>lien nᵒ 1 : <a title="http://flarum.org/features/" hreflang="fr" href="https://linuxfr.org/redirect/94831">Les fonctionnalités existantes et prévues de Flarum</a></li><li>lien nᵒ 2 : <a title="http://discuss.flarum.org" hreflang="fr" href="https://linuxfr.org/redirect/94832">Pour tester Flarum</a></li><li>lien nᵒ 3 : <a title="https://github.com/flarum/flarum" hreflang="fr" href="https://linuxfr.org/redirect/94833">Dépôt Git</a></li></ul><div></div><div><a href="https://linuxfr.org/news/sortie-de-flarum-0-1-0-beta.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/106634/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/sortie-de-flarum-0-1-0-beta#comments">ouvrir dans le navigateur</a>
</p>
ScoubidouBenoît Sibaudbubar🦥Nils Ratusznikhttps://linuxfr.org/nodes/106634/comments.atomtag:linuxfr.org,2005:Post/343282014-08-26T20:51:22+02:002014-08-26T22:40:02+02:00mettre en place un SSO centralisé ? [RESOLU]<p>Bonjour à tous,</p>
<p>Depuis quelques temps je cherche une solution pour mettre en place une authentification de type SSO pour mon réseau.<br>
De là je ne sais pas trop comment faire, ni même ce que je dois utiliser, d'où ma question : comment mettre en place un SSO ?</p>
<p>Pour pouvoir me répondre l'idéal, je pense, est de vous dresser un tableau de ma situation précise et de mon besoin.</p>
<p>Une machine x64 sur laquelle est installé CentOS 6.5 qui distribue tous les services que j'utilise aujourd'hui :<br>
- Bind9 pour le DNS<br>
- dhcpd pour l'adressage IP<br>
- Samba3 pour le partage de fichiers<br>
- Squid pour le service proxy<br>
- squidGuard pour le filtrage groupes/Internet</p>
<p>3 machines en dual-boot avec CentOS pour la distribution Linux et soit Windows XP ou 7 pour le coté Windows (je suis contrains de conserver Windows pour mes enfants qui passent leur temps à jouer dessus et ma femme qui a accepté de passer sur Linux seulement le jour où tout fonctionnera…, c'est ainsi…)</p>
<p>Tous ces services fonctionnent et remplissent très bien leur fonction indépendamment les uns des autres, à un détail près :<br>
Actuellement mes utilisateurs (que je vais appeler users) doivent donc ouvrir leur session avec un couple login/mot-de-passe ; puis dès qu'ils veulent aller surfer sur Internet ils ouvrent un navigateur Internet (Firefox ou IE) et un popup apparait leur demandant un nouveau couple login/mot-de-passe.</p>
<p>Au début tout fonctionnait et tout le monde était content, sauf que aujourd'hui tous mes users ont changé leur mot de passe de session (soit avec Windows en passant par Samba3, soit directement sous Linux).</p>
<p>Mais le souci est maintenant car Samba3 fonctionne avec son backend tdbsam, et squid avec un fichier texte…</p>
<p>De là je pensais mettre en place un SSO en utilisant Kerberos mais bien évidement ce service utilise lui aussi sa propre database…</p>
<p>Donc mon idée est la suivante :<br>
Pourquoi ne pas centraliser toutes les données login/mot-de-passe dans une base commune ?</p>
<p>Ben oui, les 3 voir 4 services nécessitant une authentification peuvent être connectés à une base Openldap….</p>
<p>Maintenant mes questions finales :<br>
Est-il possible de faire ce que je souhaite ?<br>
Est-il possible de réaliser ceci avec les éléments cités, savoir Openldap, Kerberos, Samba3 et Squid ?<br>
Pour combler mon bonheur : est-il possible de relier l'authentification des systèmes Linux sur cette même base ?</p>
<p>Dans l'espoir d'une âme charitable qui voudra m'apporter son aide…</p>
<p>D'avance merci à tous pour vos réponses,</p>
<p>Fredouille</p><div><a href="https://linuxfr.org/forums/linux-general/posts/mettre-en-place-un-sso-centralise-resolu.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/103110/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/forums/linux-general/posts/mettre-en-place-un-sso-centralise-resolu#comments">ouvrir dans le navigateur</a>
</p>
fredouillehttps://linuxfr.org/nodes/103110/comments.atomtag:linuxfr.org,2005:News/355652014-07-26T06:25:46+02:002014-07-26T06:25:46+02:00Sortie de LemonLDAP::NG 1.4Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p><a href="http://www.lemonldap-ng.org">LemonLDAP::NG</a> est un logiciel libre de <a href="http://fr.wikipedia.org/wiki/SSO" title="Définition Wikipédia">SSO</a>, de gestion des accès et de fédération des identités. Il est publié sous licence <a href="http://fr.wikipedia.org/wiki/GPL" title="Définition Wikipédia">GPL</a>. Il est développé par la <a href="http://fr.wikipedia.org/wiki/Gendarmerie%20Nationale" title="Définition Wikipédia">Gendarmerie Nationale</a> et la société <a href="http://fr.wikipedia.org/wiki/Linagora" title="Définition Wikipédia">Linagora</a>.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f6c656d6f6e6c6461702d6e672e6f72672f6c69622f74706c2f6c656d6f6e6c6461706e672f696d616765732f6c6f676f2e706e67/logo.png" alt="Logo LemonLDAP::NG" title="Source : http://lemonldap-ng.org/lib/tpl/lemonldapng/images/logo.png"></p>
<p>Il implémente de nombreux protocoles standards, tels que <a href="http://fr.wikipedia.org/wiki/Central%20Authentication%20Service" title="Définition Wikipédia">Central Authentication Service</a>, <a href="http://fr.wikipedia.org/wiki/OpenID" title="Définition Wikipédia">OpenID</a> et <a href="http://fr.wikipedia.org/wiki/SAML" title="Définition Wikipédia">SAML</a>.</p>
<p>La version 1.4 est sortie fin juin. Cette dépêche présente les principales nouveautés de cette version.</p></div><ul><li>lien nᵒ 1 : <a title="http://lemonldap-ng.org/welcome/" hreflang="en" href="https://linuxfr.org/redirect/91150">Site du projet</a></li><li>lien nᵒ 2 : <a title="http://lemonldap-ng.org/screenshots" hreflang="en" href="https://linuxfr.org/redirect/91151">Captures d'écran</a></li><li>lien nᵒ 3 : <a title="http://lemonldap-ng.org/download" hreflang="en" href="https://linuxfr.org/redirect/91152">Téléchargement</a></li><li>lien nᵒ 4 : <a title="http://linuxfr.org/news/sortie-de-lemonldap-ng-1-3" hreflang="fr" href="https://linuxfr.org/redirect/91153">Dépêche sur la sortie de la version 1.3</a></li><li>lien nᵒ 5 : <a title="https://2014.rmll.info/conference136" hreflang="en" href="https://linuxfr.org/redirect/91154">Conférence aux RMLL 2014</a></li><li>lien nᵒ 6 : <a title="http://www.ow2.org/view/Webinars/LemonLDAP_NG" hreflang="en" href="https://linuxfr.org/redirect/91155">Webinaire OW2</a></li><li>lien nᵒ 7 : <a title="http://forge.ow2.org/forum/forum.php?forum_id=2352" hreflang="en" href="https://linuxfr.org/redirect/91156">Annonce de la sortie sur la forge OW2</a></li></ul><div><h2 id="thème-graphique">Thème graphique</h2>
<p>Un nouveau thème graphique basé sur <a href="http://getbootstrap.com/">Bootstrap</a> est disponible. Ce thème est adaptatif (responsive), il permet donc d'utiliser le SSO depuis tout type de périphérique (téléphone, tablette, poste de travail).</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f6c656d6f6e6c6461702d6e672e6f72672f5f6d656469612f73637265656e73686f74732f312e342f636170747572655f645f656372616e5f323031342d30362d30325f615f31372e32342e31392e706e673f773d38303026683d363030/capture_d_ecran_2014-06-02_a_17.24.19.png?w=800&h=600" alt="Capture d'écran du nouveau thème graphique" title="Source : http://lemonldap-ng.org/_media/screenshots/1.4/capture_d_ecran_2014-06-02_a_17.24.19.png?w=800&h=600"></p>
<p>De nombreux thèmes sont disponibles sur Internet permettant de changer l’apparence d'un site utilisant Bootstrap, facilitant ainsi la personnalisation de l'interface Web de LemonLDAP::NG.</p>
<h2 id="création-de-compte">Création de compte</h2>
<p>LemonLDAP::NG propose plusieurs libre-services (self service), en particulier la possibilité de réinitialiser son mot de passe lorsqu'il a été perdu. La nouvelle version propose désormais dans le même esprit de pouvoir créer un compte si l'on n'en possède pas.</p>
<p>La démarche est simple, calquée sur la plupart des services similaires proposés par des sites en ligne :<br>
1. L'utilisateur remplit un formulaire avec nom, prénom et adresse mail<br>
2. Il reçoit un message avec un lien sur lequel cliquer<br>
3. Après avoir cliqué, il reçoit un message lui confirmant la création de son compte, avec ses informations de connexion</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f6c656d6f6e6c6461702d6e672e6f72672f5f6d656469612f73637265656e73686f74732f312e342f636170747572655f645f656372616e5f323031342d30362d30325f615f31372e32342e35322e706e673f773d38303026683d363030/capture_d_ecran_2014-06-02_a_17.24.52.png?w=800&h=600" alt="Formulaire de création de compte" title="Source : http://lemonldap-ng.org/_media/screenshots/1.4/capture_d_ecran_2014-06-02_a_17.24.52.png?w=800&h=600"></p>
<p>Bien entendu cette fonctionnalité a peu d'intérêt en entreprise, où les utilisateurs sont déclarés dans un annuaire central et ne peuvent choisir de s'inscrire ou non au service. Toutefois cela offre désormais la possibilité de proposer plusieurs services en ligne protégés par LemonLDAP::NG, permettant à un nouvel utilisateur de s'inscrire s'il ne possède pas de compte.</p>
<h2 id="utilisation-de-mouse">Utilisation de Mouse</h2>
<p><a href="https://metacpan.org/pod/Mouse">Mouse</a> est un module Perl permettant une manipulation haut niveau des objets. Ce module est utilisé dans la nouvelle version de LemonLDAP::NG, ce qui a entraîné beaucoup de réécriture de code, avec un objectif de meilleure maintenabilité.</p>
<p>Ces changements sont visibles essentiellement des développeurs, mais ils ont tout de même permis quelques améliorations :<br>
- gestion unifiée du cache des sessions, pour tous les types de session (SSO, CAS, SAML, etc.) ;<br>
- centralisation des valeurs par défaut des attributs de configuration ;<br>
- simplification des appels au Handler dans la configuration Apache ;<br>
- support des captcha en cluster ;</p>
<h2 id="génération-des-identifiants">Génération des identifiants</h2>
<p>C'est le principe du SSO : l'accès aux différentes applications est possible à l'aide d'un jeton, en l'occurrence pour LemonLDAP::NG une clé de session stockée dans un cookie.</p>
<p>Par défaut, les identifiants de session sont générés en MD5 avec une taille de 32 caractères. Cela peut poser des problèmes de sécurité, en particulier si un attaquant tente de découvrir un identifiant de session par force brute. Ce n'est pas spécifique au SSO, ce type d'attaque est possible sur toute application utilisant un cookie de session. Toutefois dans le cas du SSO, la découverte de la session permet l'accès à toutes les applications protégées.</p>
<p>La nouvelle version de LemonLDAP::NG permet de choisir son propre module de génération d'identifiant de session, et propose un module basé sur SHA, créant des clés sur 64 caractères.</p>
<h2 id="saml">SAML</h2>
<p>Le mode SSO initié par le fournisseur d'identité (SSO IDP initiated) est désormais disponible. Il permet de générer des URLs sur le portail LemonLDAP::NG (agissant comme IDP SAML) qui transmettent directement une réponse SAML à un fournisseur de service (SP).</p>
<p>Cela permet une authentification en deux étapes (authentification sur l'IDP puis accès au SP) au lieu des trois étapes du processus standard (accès au SP, authentification sur l'IDP puis retour sur le SP).</p>
<p>La nouvelle version de LemonLDAP::NG permet également une configuration plus fine des dates utilisées dans les messages SAML (durée de validité des assertions et des sessions).</p>
<h2 id="nginx">Nginx</h2>
<p>Depuis ses origines (il y a plus de 10 ans), LemonLDAP::NG a été conçu pour fonctionner avec <a href="http://fr.wikipedia.org/wiki/Apache" title="Définition Wikipédia">Apache</a>. Le support de <a href="http://fr.wikipedia.org/wiki/Nginx" title="Définition Wikipédia">Nginx</a> étant une demande de plus en plus forte, l'équipe de développement a planché sur le sujet.</p>
<p>Une première implémentation du Handler en LUA <a href="https://github.com/davidcoutadeur/lemonldap-lua-handler">a été publiée</a>. Cette implémentation ne permet pas de couvrir 100% des fonctionnalités offertes par le Handler standard (gestion des expressions régulières, de l'interception des déconnexion, etc.), c'est toutefois une bonne base de départ pour protéger l'accès à une application derrière Nginx.</p>
<p>Des travaux sont encore en cours sur un Handler Perl pour Nginx, pour l'instant freinés par les manques de l'API Perl de Nginx. Les discussions entre les communautés sont en cours (et toute aide est la bienvenue sur le sujet).</p></div><div><a href="https://linuxfr.org/news/sortie-de-lemonldap-ng-1-4.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/102872/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/sortie-de-lemonldap-ng-1-4#comments">ouvrir dans le navigateur</a>
</p>
OUDOT ClémentXavier Teyssierpalm123https://linuxfr.org/nodes/102872/comments.atom