Notre expertise et la puissance des technologies open source dans Azure

Logos Microsoft + Savoir-faire Linux  

 

 

 

Nous sommes heureux de vous annoncer la sortie d’une vidéo promotionnelle produite par Microsoft eux-même ! Fruit d’une collaboration autour de la plateforme Azure, cette vidéo souligne la pertinence et l’essor des technologies open source dans l’environnement infonuagique Azure de Microsoft ainsi que notre capacité d’innovation en combinant technologies open source et solutions infonuagiques hybrides.

Premier  «partenaire Microsoft Open Source» au Canada

Savoir-faire Linux est, depuis 2015, le premier  «partenaire Microsoft Open Source» au Canada. Ce partenariat rappelle notre force : la conception et l’intégration de technologies libres et open source dans des écosystèmes complexes ou hybrides, comme la plateforme Azure. Nous aidons nos clients grâce à l’innovation des technologies ouvertes et à des alliances stratégiques pour maximiser la puissance des systèmes d’information complexes ou hétérogènes et créer des environnements spécifiques pour nos clients.

Pour Microsoft, l’open source fait désormais partie intégrante de l’approche quotidienne de l’innovation cloud. En tant qu’expert et chef de file de l’industrie du logiciel libre et  des technologies open source au Canada, Savoir-faire Linux se devait d’offrir des moyens d’améliorer l’expérience des utilisateurs et des développeurs en ajoutant à son éventail de solutions, la plateforme Azure, désormais compatible avec de nombreuses technologies open source.

Apprenez-en plus sur notre expertise et notre offre de services

 

 

Savoir-faire Linux, partenaire Platinium au Liferay Symposium 2017 Paris

En quête d’une expérience digitale enrichie ? Envie de créer des environnements personnalisés à travers le web, mobile et objets connectés ? Le Liferay Symposium est pour vous ! Le Symposium est l’occasion de poser vos questions, d’échanger sur les bonnes pratiques Web d’aujourd’hui et de découvrir Liferay,  le portail web open source de référence.

Partenaire Platinum du Liferay Symposium 2017 à Paris et expert en solutions Liferay, Savoir-faire Linux vous donne rendez-vous les 26 et 27 avril 2017 au Pavillon Dauphine pour rencontrer notre équipe, échanger avec l’éditeur et imaginer ensemble vos prochaines solutions d’affaires. Du site web client léger ou riche à l’application critique d’entreprise hautement sécurisée, en passant par la gestion de contenu web, la gestion documentaire, l’intégration d’applications métier… Liferay se présente comme la solution de référence mondiale, fiable, flexible et puissante pour propulser la stratégie numérique de votre entreprise !

Du 26 au 27 avril, plus de 200 membres de la communauté Liferay sont attendus : développeurs, chefs de projet, décideurs techniques ou métier et partenaires Liferay. À travers plusieurs présentations, partages des bonnes pratiques et retours d’expérience (dont Airbus, Danone, CNAF, Msheireb et TOTAL), nous tenterons de repenser les parcours clients, de casser les silos organisationnels et de créer des nouvelles expériences digitales cohérentes sur l’ensemble des canaux… Bref, autant d’impératifs et de sujets qui seront abordés lors de cette 7ème édition.

Ne manquez pas l’occasion d’en apprendre plus sur les solutions Liferay et de découvrir l’expertise de nos équipes au service de l’expérience client !

  • 26 avril : Rencontre technique
  • 27 avril : Symposium

Érudit, un savoir à cultiver… librement

Premier diffuseur de ressources francophones en sciences humaines et sociales en Amérique du Nord, Érudit s’est refait une beauté en 2017. Fruit d’un travail d’un an et demi, cette refonte technique et visuelle offre de nouvelles fonctionnalités, auxquelles notre expert Python Morgan Aubert s’est fait un grand plaisir de contribuer.

En accès libre
Avant d’aborder cette refonte, revenons un petit peu en arrière. En 1998, les Presses de l’Université de Montréal lancent Érudit, plateforme de ressources pour les sciences humaines et sociales. Six ans plus tard, en 2004, elle bénéficie du soutien d’un consortium unissant l’Université de Montréal, l’Université Laval et l’Université du Québec à Montréal. Cette union renforce Érudit dans sa mission de diffuser en accès libre du contenu de haut niveau dans plus de 30 disciplines : des revues savantes et culturelles, des livres, des actes, des mémoires, des thèses ainsi que des rapports de recherche.

Ce volume conséquent de plus de 200 000 documents fait de la plateforme un acteur de référence pour la recherche francophone, contribuant au partage du savoir et encourageant par là même la publication scientifique en français sur le territoire nord-américain. En 2016, le compteur des consultations est monté 21 millions !

Par ailleurs, Érudit s’est engagé dès sa création envers l’utilisation des logiciels libres : son environnement de travail, son infrastructure et ses services reposent sur des logiciels libres. Directeur des technologies du consortium, Davin Baragiotta insiste sur le fait d’avoir «la capacité d’utiliser des technologies développées/maintenues par des tiers, d’y contribuer au besoin -comme on a pu le faire- et de mettre à disposition notre propre code en vue d’une réutilisation complète ou partielle par des tiers. C’est une culture technique de partage et de collaboration qui permet d’avoir une meilleure capacité de développement et de maintenance de nos TI. Aussi, d’un point de vue organisationnel, cette approche technique s’inscrit dans une culture plus large d’ouverture, de collaboration et de partenariat. Essentiellement, Érudit met en valeur des contenus scientifiques et culturels que l’on veut voir d’avantage diffusés en Open Access. »

Lors des travaux préliminaires de la refonte, le projet visait à doter Érudit d’une plateforme moderne qui permettra une évolution continue et une extension des fonctionnalités. Il s’agissait donc de réécrire la plateforme en Python/Django en remplacement de Cocoon/Drupal/WordPress, mais en gardant la même couverture fonctionnelle. C’est dans ce contexte que notre expert Morgan Aubert a travaillé en tant consultant développeur Python. Il y a fait du développement back end et front end, en utilisant le framework web Django, alors que les développements front end impliquaient Javascript et Sass.

Bonjour Morgan, quels ont été les défis techniques auxquels tu as confronté pour cette plateforme ?
L’un des principaux défis technologiques était lié au gros volume de données à importer, traiter, présenter et servir sur la plateforme. En effet, la plateforme Érudit met à disposition plus de 200 000 documents savants et culturels. Avant d’être visibles sur la plateforme Erudit.org, ces documents doivent être importés depuis différentes sources de données – ce qui implique plusieurs protocoles sous-jacents (par exemple Fedora Commons, un système de gestion de bibliothèques numériques, ou encore OAI-PMH, Open Archive Initiative Protocol for Metadata Harvesting, un protocole permettant l’échange de métadonnées provenant de sources diverses). Gérer un tel volume de document impliquait également d’anticiper les différents usages de la plateforme afin d’assurer une navigation fluide et performante pour les utilisateur d’ Erudit.org.

Il y avait également d’autres défis : assurer une certaine rétro-compatibilité entre l’ancienne plateforme et la nouvelle, qu’il s’agisse de redirections entres les anciennes URLs et les nouvelles, ou des techniques de conservation de l’indexation des documents Érudit dans Google et Google Scholar (https://scholar.google.ca/). Un autre défi consistait à permettre la collecte de métriques de consultations de documents en vue de produire des statistiques dans divers formats, et ainsi représenter ces statistiques de consultation de documents savants ou culturels avec des outils tel que COUNTER, ou des webservices, qui implémentent plusieurs normes de webservices liés à la récupération de données de consultation de documents savants ou culturels tel que Schemas for the Standardized Usage Statistics Harvesting Initiative (SUSHI).

Et quelle fut la partie de ton travail la plus intéressante ?
L’objectif de la plateforme Erudit.org s’inscrit dans une dynamique très vertueuse; le fait d’effectuer des travaux de conception et de développement sur la nouvelle version de cette plateforme était ainsi très valorisant. Outre les travaux liés à la mise en place de cette nouvelle application avec le cadriciel Django, l’un des aspects les plus intéressants de cette mission de plusieurs mois était lié aux spécificités mêmes de la plateforme : le fait de découvrir les spécificités techniques et exigences du milieu universitaire/bibliothécaire était particulièrement intéressant. Qu’il s’agisse de protocoles d’échange de métadonnées, de technologies de gestion de bibliothèques numériques ou de normes de présentation de citations, c’est un milieu qui vient avec son lot de problématiques techniques, d’enjeux technologiques… et de solutions libres. J’ai d’ailleurs été amené à réaliser plusieurs contributions lors de mon mandat, notamment dans le cadre de l’utilisation d’outils Python proposant des mécanismes d’interactions avec des technologies de gestion de bibliothèques numériques tels que eulfedora pour Fedora Commons .

Christophe Villemer, vice-président de Savoir-faire Linux, rebondit sur ces contributions : «en apportant notre expertise Python/Django à ce projet d’envergure, nous avons pu à la fois participer au développement d’un moteur de recherche important pour la communauté scientifique et offrir de nouvelles ressources à celle des technologies open source destinées à la gestion documentaire. Ce qui correspond parfaitement à la philosophie de notre entreprise».


Une version bêta

Complété à l’interne, le nouvel Érudit est encore en version bêta, et au cours de l’année de nouvelles fonctionnalités seront graduellement intégrées au site. Dans l’esprit des technologies ouvertes, vous pouvez contribuer à l’amélioration de la plateforme en signalant tout bogue à l’adresse bogue@erudit.org, et vous pouvez aller consulter le projet sur github, où Érudit a même son propre dépôt.

En attendant ces améliorations, libre à vous d’aller consulter la plateforme de recherches et trouver une multitude de ressources sur le logiciel libre, entre les thèses, les mémoires de maîtrise, les articles de revue savante ou culturelle, vous aurez l’embarras du choix…

Utilisation de Keepalived pour la haute-disponibilité LDAP et HTTP

Nous déployons régulièrement des infrastructures LDAP et WebSSO chez nos clients, et se pose toujours la question de la haute-disponibilité : la plate-forme d’authentification devenant centrale, il est indispensable de se prémunir d’un arrêt de service, que ce soit de l’annuaire LDAP ou du portail d’authentification Web. Nous allons voir comment le logiciel Keepalived peut nous aider à répondre à ce besoin.

ka-header

Des logiciels d’infrastructure adaptés

Avant d’envisager la mise en place d’outils de haute-disponibilité, il faut s’assurer que les logiciels principaux de l’infrastructure sauront fonctionner dans ce mode, c’est-à-dire qu’ils peuvent être installés sur plusieurs nœuds (serveurs physiques, virtuels ou conteneurs) et opérer de la même façon quelque soit le nœud actif.

Dans notre cas, nous utiliserons les logiciels suivants :

  • OpenLDAP : serveur d’annuaire compatible LDAPv3
  • LemonLDAP::NG : produit de WebSSO compatible CAS, SAML et OpenID Connect

OpenLDAP-logo

OpenLDAP sait fonctionner en mode multi-maîtres depuis plusieurs années, via le protocole SyncRepl. Le mode « miroir » (mirror mode) est particulièrement pertinent dans une architecture à deux nœuds où un seul d’entre eux sera contacté par les clients (l’important ici est d’éviter que des opérations d’écriture soient faites simultanément sur les deux nœuds). La configuration de ce mode est détaillée dans le guide d’administration d’OpenLDAP.

LemonLDAP::NG

LemonLDAP::NG pour sa part a été conçu dès le départ pour pouvoir utiliser des bases externes pour la gestion de ses données (configuration et sessions). Ainsi il est possible de déployer autant de nœuds que nécessaire en partageant les données entre les nœuds. Pour ma part, j’utilise régulièrement l’annuaire OpenLDAP comme stockage de la configuration et des sessions : l’annuaire étant déjà redondé, pas besoin de travail supplémentaire pour le WebSSO. Mais vous pouvez également utiliser des bases de données SQL (MySQL, PostGreSQL) ou NoSQL (MongoDB, Redis, Cassandra) pour assurer ce service.

Utilisation d’une adresse virtuelle

Une fois les deux nœuds installés, chacun possède son adresse IP propre et il faut trouver un moyen d’indiquer aux applications clientes quel nœud utiliser.

Une première solution est le Round-Robin DNS : au nom DNS ldap.example.com ou auth.example.com on associe les deux adresses IP, et charge aux clients de se débrouiller avec ça. Dans le cas de HTTP, la plupart des clients sauront rejouer les requêtes sur la seconde IP si la première ne fonctionne pas, mais ce n’est pas aussi évident pour les clients LDAP.

L’autre solution est d’utiliser une adresse IP virtuelle qui sera associée au nœud principal. Le nœud secondaire est opérationnel mais ne sera pas associé à l’adresse IP virtuelle, jusqu’à ce que celle-ci bascule en cas de problème du nœud principal. Dans cette situation, la haute-disponibilité est bien gérée du côté des serveurs, et non du côté des clients qui ne contacte qu’une seule adresse, l’adresse IP virtuelle.

Utilisation de Keepalived

Le logiciel Keepalived permet de gérer une IP virtuelle qui sera associée au nœud principal tant que celui-ci est opérationnel. Le protocole VRRP est utilisé entre les nœuds pour gérer cette adresse IP virtuelle.

Sa configuration est assez simple :

vrrp_instance VI_SFL {
  state MASTER
  priority 150
  nopreempt
  interface eth0
  virtual_router_id 69
  advert_int 5
  authentication {
     auth_type PASS
     auth_pass KEEPALIVED_PASSWORD
  }
  virtual_ipaddress {
    10.10.0.10/22 brd 10.10.0.255 dev eth0 scope global
  }
}

Il est intéressant de paramétrer la partie « authentication » pour éviter que les ordres VRRP soient pris en compte par d’autres routeurs non associés à la grappe de serveurs. Seuls les serveurs disposant du même mot de passe consommeront les requêtes.

Le paramètre « priority » permet d’indiquer le nœud principal. Le ou les nœuds secondaires auront une priorité plus faible (par exemple 100).

Script de surveillance

Cette configuration initiale n’est pas suffisante pour palier à des problèmes applicatifs : l’adresse IP virtuelle basculera si le nœud principal ne répond plus au protocole VRRP, mais rien n’est fait pour surveiller l’annuaire LDAP ou le serveur HTTP.

Keepalived permet d’utiliser un « track_script » dans lequel nous sommes libres de lancer les commandes que nous souhaitons. Si ce script s’exécute sans erreurs, alors le nœud est considéré comme opérationnel, sinon il est mis en quarantaine.

L’appel au script se configure simplement :

vrrp_script check_server_health {
  script "/usr/local/bin/check_server_health.sh"
  interval 2
  fall 2
  rise 2
}

vrrp_instance VI_SFL {
  ...
  track_script {
    check_server_health
  }
}

Voici un exemple de script :

#!/bin/bash

# Script that do several checks to verify LDAP/SSO service is up
#
# Returns 0 if all is fine
#
# Copyright (c) 2016 Clement Oudot @ Savoir-faire Linux


# Disks

rootuse=$(df -H / | grep -v 'Filesystem' | awk '{ print $5 }' | cut -d'%' -f1)

if [ $rootuse -ge 95 ]; then
        echo "Partition / is full ($rootuse%)"
        exit 1
else
        echo "Partition / is OK ($rootuse%)"
fi

# Process
            
openldapprocess=$(/bin/pidof slapd)
apacheprocess=$(/bin/pidof apache2)

/usr/local/openldap/bin/ldapsearch -x -H ldap://localhost -b '' -s base -l 3 > /dev/null 2>&1
ldapresponse=$?

if [ -z "$openldapprocess" ]; then  
        echo "OpenLDAP is not running"
        exit 1
else
        echo "OpenLDAP is running (PID $openldapprocess)"
fi

if [ "$ldapresponse" -gt 0 ]; then
        echo "OpenLDAP is not anwering on RootDSE"
        exit 1
else
        echo "OpenLDAP is answering on RootDSE"
fi

if [ -z "$apacheprocess" ]; then
        echo "Apache is not running"
        exit 1
else
        echo "Apache is running (PID $apacheprocess)"
fi

# Exit without problem
exit 0

J’utilise plusieurs type de vérifications dans ce script :

  • Contrôle de l’espace disque
  • Contrôle des démons lancés
  • Réponse à une requête LDAP

Bien entendu, charge à vous d’y mettre les vérifications qui vous semblent pertinentes.

Sortie de LemonLDAP::NG 1.9

Ce billet a été publié à l’origine sur LinuxFR

LemonLDAP::NG est un logiciel libre d’authentification unique (SSO), 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.

LemonLDAP::NG

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.

Présentation des nouveautés

OpenID Connect

OpenID Connect est un nouveau protocole de SSO porté par la fondation OpenID et basé sur le framework OAuth 2.0. Ce standard est adopté par de nombreux acteurs, comme par exemple Google 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 France Connect.

Il est donc désormais possible d’utiliser LemonLDAP::NG pour s’authentifier sur ces services :

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.

Interface d’administration

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.

Manager LemonLDAP::NG

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.

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.

Support Nginx

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.

Attributs CAS

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 PHP-CAS et sa fonction getAttributes().

MongoDB

MongoDB 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.

Mettre à jour sa version

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.

D’autres changements techniques importants ont eu lieu et il est préférable d’avoir bien pris connaissances des notes de mise à jour avant de se lancer.

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 OpenHub et également faire partie de nos références.