20 juin 2009

SOA ne s'achète pas, SOA se construit

Voici le contenu d'un interview que j'ai donné au site Silicon.fr sur SOA.

Dans quels contextes SOA incarne-t-elle une démarche pertinente ?

Globalement, je citerai trois raisons qui présentent un intérêt évident pour une approche SOA. En dehors de ces trois situations, l’entreprise peut se passer de la démarche SOA.

  • Première motivation : apporter de l’agilité aux processus métier. Dans certains secteurs (finance, services…), ces processus évoluent fortement. Or, s’ils sont “codés en dur” dans les programmes, la rigidité freine fortement l’agilité du système d’information qui ne peut s’adapter souplement pour répondre aux besoins évolutifs de l’entreprise. Avec une architecture SOA, les processus sont décomposés en briques élémentaires appelées services. Cela favorise les évolutions sans remettre en cause l’ensemble du schéma applicatif. Par exemple, une banque propose des services bancaires en marque blanche à d’autres acteurs. Or, chacun souhaite disposer de sa propre variante de processus tels que la souscription de crédit (traitement spécifique en cas de refus, limiter les étapes de validation…). En mode SOA, soit le processus présente une souplesse suffisante, soit la banque peut mettre en place des variantes d’un même processus pour un coût très raisonnable.
  • Seconde situation favorable dans laquelle le SOA apporte une solution efficace : l’interopérabilité. Une caractéristique critique pour une entreprise nécessitant de forts échanges entre les briques de son système information, entre ses applications décloisonnées, ou pour communiquer avec les applications de ses partenaires, fournisseuse ou clients. C’est ce que j’appelle la “SOA de surface” : on ne sait pas forcément ce qui se trouve dans l’application, mais on déploie les interfaces nécessaires à la communication (e.g. Services Web). Ainsi, un groupe de transport dont les processus restent identiques doit pourtant se conformer à de nouvelles règlementations. Il ne modifie pas les processus applicatifs, mais uniquement l’interface des échanges.
  • Troisième cas, moins fréquent que les deux autres : la rationalisation du SI. L’objectif consiste à réduire les occurrences multiples d’informations et d’applications ou fonctions. Il s’agit alors de travailler sur la qualité des données et des services applicatifs (MDM et autres outils de ce type). Si ce travail permet de réduire les coûts à moyen terme, on ne vise pas le retour sur investissement rapide, mais plutôt la cohérence du SI.

Quels éléments ou infrastructures favorisent l’élaboration d’une approche SOA ?

L’infrastructure ou les logiciels ne sont pas l’essentiel de la démarche, et les questions à leur sujet ne devraient pas se poser au départ. SOA est une philosophie de construction du SI sous forme de briques élémentaires et réutilisables. Or, cette notion de réutilisabilité provient de la qualité de l’interface et passe forcément par des formats pivots (description par message d’un processus métier, qui sera véhiculé lors des appels de services). L’intérêt consiste à mettre sur pied un vocabulaire commun à toute l’entreprise et à détecter les différences. Par exemple, la notion de “client” est différente selon les services, mais certains attributs sont communs. Alors, autant utiliser ce “plus petit dénominateur commun” de façon unique et le stocker dans un référentiel. Ainsi, en cas de modification et d’évolution, l’impact sera moindre et la maintenance des données largement simplifiée. Au final, une meilleure cohérence du SI et une productivité en hausse des informaticiens. On comprend alors pourquoi le référentiel est propre à chaque entreprise, à sa culture et ses métiers, et peut difficilement être vendu “prêt à l’emploi”.

En quoi l’architecture SOA diffère-t-elle de l’architecture applicative classique ?

Dans une architecture traditionnelle, on distingue trois couches : la couche utilisateur (avec le poste de travail et les interfaces homme-machine), les traitements et les données. Avec SOA, les traitements métiers sont séparés en Services élémentaires et en Services d’orchestration. Les premiers sont les briques de base que les seconds viennent compléter pour permettre la communication et les échanges.

À quel moment et où les logiciels peuvent-ils faciliter la démarche ?

Dans les solutions des éditeurs, la couche la plus stratégique reste le transport avec des logiciels comme MQ Series d’IBM ou JMS Sonic MQ de Progress, entre autres. En outre, lorsque les services se multiplient et se comptent par centaines, des suites logicielles deviennent indispensables pour comprendre ce qui se passe et orchestrer l’ensemble. Elles permettent d’industrialiser les tâches. De même, l’entreprise devra en déployer une pour assurer une ouverture contrôlée de ses applications dans des flux B2B. Cependant, SOA ne s’achète pas, mais se construit ! Signer un chèque à un éditeur ne sert à rien au départ du projet. Bien qu’il faille planifier cet investissement pour la suite.

14 juin 2009

Un nouveau type de plugin pour Liferay 5

Une des nouveautés de liferay 5 est l’ajout d’un nouveau type de plugin, nommé hook, dans le Plugin SDK. Il impacte fortement la façon de customiser liferay car il permet de changer le comportement et l’interface de liferay de manière plus intelligente.

Je n’entre pas dans le détail de création d’un plugin hook. Vous pouvez le voir en détail dans le wiki de Liferay. Dans ce billet je voudrais donner mon opinion et formuler quelques souhaits d’évolution pour les futures versions.

D’abord j’apprécie beaucoup l’idée de séparer toutes les customisations dans un war de type plugin. Cela donne la souplesse et le dynamisme pour les SI qui veulent customiser Liferay par rapport à leur besoin métier. Pour rappel, auparavant si l'on voulait customiser Liferay, la méthode la plus utilisée était d’utiliser l’environnement EXT fourni par Liferay. Mais EXT ne peut pas fournir un livrable séparé, les parties customisées sont déployées de facon manuelle ou semi automatique via les scripts ant. Les customisations notamment dans la couche présentation (les pages jsp) sont mélangées avec les sources originales de liferay et il n'existe pas donc de moyen simple pour les enlever. On doit supprimer le war customisé et redéployer le war original. On peut maintenant regrouper toutes les customisations dans un war, que l'on peut facilement déployer et retirer à la montée de version.

Voyons de quoi le plugin hook est capable. Il permet d'« accrocher » les modifications dans liferay. Plus précisément, il permet

  • de surcharger une partie des propriétés de la configuration de liferay (portal.properties). Parmi ces propriétés on peut trouver celles qui permettent d'intercepter le système d’événement et la gestion de l’écouteur autour des modèles métiers.
  • de surcharger, ajouter la traduction
  • de surcharger les pages jsp de liferay

Quelles sont les utilisations du plugin hook ?
L’usage principal est bien sur pour customiser le comportement et l’interface de Liferay via les différentes surcharges listées ci-dessus. L’usage alternatif est de créer un plugin hook qui initialise certaines données dans Liferay. C’est très utile pour faire une démo. Un bon exemple: dans le bundle tomcat-liferay fourni sur le site de Liferay, on peut trouver le hook sevencogs qui sert à initialiser les données de la communauté exemple nommé SevenCog.

L’apparition du plugin hook dans va-t-il entrainer la fin de l’environnement EXT ?
Personnellement, je n’y crois pas. Il faut distinguer les rôles des 2 projets de Liferay Plugin SDK et EXT. EXT sert à étendre le fonctionnement interne de Liferay ainsi qu'à le customiser. Plugin SDK sert à développer les plugins de Lifray (portlet, thèmes...) et maintenant packager une partie de la customisation. EXT est encore utiliser pour l’ajout des extensions lourdes. Il y a encore des choses qu’on peut faire dans EXT mais pas avec plugin hook. Par exemple, ajouter des nouvelles pages jsps, et des nouvelles actions struts.

Ce sont aussi les fonctionnalités que je souhaite voir dans la prochaine version du projet Plugin SDK. Pour arriver à ce point là, il faut gérer la surcharge à chaud de la configuration de struts (struts-config.xml) qui n’est pas évidente. La logique voudrait alors que Liferay enleve le répertoire ext-web dans projet EXT, comme ce qu’ils ont fait à l’époque pour le répertoire portlets.

Une autre fonctionnalité de hook que je souhaite est la surcharge au niveau de l’instance de portail. Pour l’instant les customisations dans un hook impactent tous les instances portail dans liferay. Si Liferay arrive à les limiter dans le scope d’une instance portail (un genre de portal-companyId.properties par exemple) ce serait idéal, notamment dans les contexte de site en "marque blanche".

Les plugins hook sont donc une évolution majeure de Liferay qui va considérablement faciliter la customisation du portail.

2 mai 2009

Cas d’utilisation d’un ESB

Dans la vision standard d’une architecture SOA, on retrouve toujours un certain nombre d’éléments communs : des services, des clients ou consommateurs de ces services, un annuaire/registre de services, et une infrastructure technique, l’ESB, utilisée comme couche de médiation entre les fournisseurs et les consommateurs de services.

Lors de nos missions chez SQLI Consulting, nous avons identifié quatre grands cas d’utilisation d’un ESB à différents niveaux de l’entreprise.

1) Usage intra applicatif

C’est un cas d’usage limité, presque toujours implémenté avec un ESB Open Source, léger et simple à mettre en œuvre.
On le retrouve dans des applications ayant un fort besoin d’agilité, qui justifie le surcoût en performance que provoque le passage par un ESB, ou dans des applications proposant une interface multi protocoles (pour des progiciels en marque blanche par exemple) ; le module consommateur de service se trouve alors dans une autre application / système.

esb1.jpg

2) Usage tactique

L’utilisation tactique correspond à un ESB utilisé au sein d’une entité / département afin de mettre à disposition pour l’ensemble de l’entité des services réutilisables.

Les services exposés peuvent être issus :

  • De nouvelles applications reposant une sur une architecture SOA interne (exposition des services via les standards actuels)
  • D’applications existantes dont une partie du code applicatif est réutilisé pour exposer des services (exposition des services via les standards actuels)
  • De systèmes légataires, tels que les mainframes ou AS400 (exposition de services grâce à des connecteurs spécifiques)

esb2.jpg

3) Usage stratégique

La vision stratégique correspond à l’utilisation de l’ESB pour établir une communication entre les silos, dans le but d’exposer des services utilisés par des processus métier transverses. Comme pour la vision tactique, les services peuvent être issus de diverses sources, voir même de l’ESB tactique qui peut exister dans chacun des silos.

esb3.jpg

4) Communication externe

Dans ce cas d’usage, l’ESB est destiné à exposer des services pour une utilisation externe à l’entreprise

Dans ce genre d’utilisation, les aspects de sécurité doivent être l’objet d’une attention particulière. Pour cette raison, il est d’usage de ne pas utiliser un ESB interne (tactique ou stratégique), mais de dédier un ESB pour les communications avec l’extérieur. Un ESB pour la communication externe sera généralement placé dans une DMZ.

esb4.jpg

Il est à noter que les échanges inter SI se font généralement par l’intermédiaire de web services (sécurisés), et que les besoins en connectivité sont donc souvent plus limités. Ces différents cas d’utilisation se combinent dans les entreprises au fil des implémentations SOA plus ou moins stratégiques à différents niveaux du système d’information.

Les ESB en entreprise, où en est-on actuellement ?
Au travers de nos missions, nous remarquons que les deux usages majoritaires des ESB sont :

  • l’ESB départemental afin de faire communiquer différentes applications appartenant à un ou deux ensemble fonctionnel
    Même si ces projets font parfois communiquer deux silos, il n’est pas possible de les considérer comme des projets d’ESB stratégique, qui est une réflexion globale sur la communication au sein de l’ensemble du SI, et dont l’objectif est l’implémentation de bout en bout des processus métiers de l’entreprise.
  • l’ESB pour l’extérieur afin d’offrir des services aux clients/partenaires de l’entreprise.


L’usage intra applicatif ne se justifie que dans de rares cas, lorsque l’agilité de l’application est considérée comme plus importante que ses performances.
Enfin le cas de l’ESB stratégique, transverse à l’entreprise reste encore limité, principalement par le fait que la plupart des systèmes d’information n’ont pas la maturité requise pour faire émerger des services dans l’ensemble de l’entreprise.

Je pense personnellement que l’un des principaux enjeux est maintenant l’interconnexion de ces différents ESB mis en place au cours de l’évolution du SI souvent sans se préoccuper de la vision globale du SI, nécessaire à l’alignement du SI sur le métier.

20 mars 2009

Google sites !

Avez-vous déjà essayé de créer un site Web en quelques minutes, sans connaître le langage HTML ? Si vous répondez non à cette question, c’est que vous n’avez pas utilisé le service « Sites » de Google.
Beaucoup s’interrogent sur la pertinence d’utiliser Google Sites pour créer leur site Web. Cet outil apporte pourtant un ensemble de fonctionnalités intéressantes dont voici quelques exemples.

gsites-visu.png

De Google Apps

Google Sites est un élément de la suite Google Apps qui permet une forte intégration des autres éléments, tels que l’insertion d’un agenda de Google Calendar pour présenter des événements à venir comme des salons ou des expositions…
Il autorise la publication des documents textuels, feuilles de calcul, présentation et formulaires de Google Docs aisément. Google site fournit des plugins qui permettent de lire un document style Word dans son site Web, de visualiser des graphismes d’une feuille de calcul style Excell ou de parcourir une présentation style Powerpoint.
Google Sites va encore plus loin et permet de développer ses propres plugins. Certains existent déjà et proposent de présenter un plan dynamique comme celui de Google Plan ou de nous informer sur le cours de la bourse, sur l’état du trafic ou sur la météo.

Web 2.0

L’évolution du Web apporte la fonctionnalité d’interagir avec le contenu d’un site. Google Sites en entreprise offre un espace de partage et de travail collaboratif plus simple à utiliser qu’un wiki. La gestion des habilitations détermine ceux qui collaborent et ceux qui seront simple invités, sans droit de modification.

gsites-edit.png

En conclusion, Google Sites est une alternative à ne pas négliger. Le conseil SQLI a élaboré un exemple de site Web créé à partir de Google Sites qui présente quelques fonctionnalités très intéressantes du produit. Il est en libre accès ici.

3 mars 2009

Séminaire Web sur Google Apps

Messagerie en SaaS : comment réduire jusqu'à six fois le coût de votre messagerie avec Google Apps ?

Selon une récente étude* le coût moyen d'une messagerie interne avoisine les 260 € par an et par utilisateur. À service équivalent, Google propose une solution externalisée de messagerie pour seulement 40 € par an et par utilisateur !

googleApps

SQLI, partenaire intégrateur privilégié de Google, est l'une des premières entreprises françaises d'envergure à avoir adopté cette messagerie révolutionnaire. Ce Web-séminaire vous présente la démarche proposée par les équipes SQLI Consulting pour réaliser une migration vers Google Apps.

Ce séminaire s'adresse aux DSI, aux directeurs des études et aux responsables de la messagerie / outils collaboratifs, de grandes entreprises, d'organismes publics ou de PME.

Avec la participation de Google France, nous vous présenterons :

  • La solution Google Apps avec ses fonctionnalités de communication unifiée et de collaboration
  • Le ROI impressionnant de la solution
  • Un exemple de success story
  • La protection des données
  • La démarche de migration de SQLI Consulting

Invitation au web-séminaire le 10 Mars 2009 de 10h à 11h. Pour vous inscrire : merci d'indiquer par mail à Gilles Grandjean - ggrandjean@sqli.com, votre nom, prénom, société, fonction, email. Il se fera un plaisir d'enregistrer votre inscription et vous communiquera toutes les informations nécessaires pour participer à ce web-seminaire.

* Etude Forrester du 5 janvier 2009 : « Should your email live in the Cloud ? A comparative cost analysis »

25 février 2009

Gmail en panne ?

Nous avons tous pu constater une indisponibilité de la messagerie Gmail le 24 février dernier. Les journaux parlent de série noire, de vent de panique ou encore de panique sur le Web. Avec ses dizaines de millions d'utilisateurs, ses milliers de serveurs et d'entreprises utilisatrices, Gmail, le plus performant des webmails n'est pas infaillible.

Le bug dont tout le monde parle, concerne, selon Google, un nouvel algorithme assurant le stockage des données au plus proche (géographiquement parlant) du lieu de son propriétaire. La volonté de Google de stocker nos données en Europe s'en trouve ainsi confirmée une fois de plus.

Les critiques citent une indisponibilité de 2h30 de la messagerie webmail, mais selon d'autres sources, l'indisponibilité n'a jamais dépassé les 8 minutes pendant ces 2h30. Ce qui veut dire que l'envoi des mails et leur réception s'effectuait régulièrement toutes les 8 minutes (voir l'article). Il fallait utiliser le mode déconnecté de Google pour s'en apercevoir.

Je rappelle que Google s'engage sur un SLA de 99,9%, autrement dit une indisponibilité inférieure à 9 heures par an. Par ailleurs Google fait un geste commercial en offrant 15 jours gratuits aux entreprises qui possèdent la version payante de Gmail : cliquer sur ce lien.

Toutes ces réactions autour de Google sont un peu excessives, mais n'est-ce pas le prix à payer lorsque on est leader dans son domaine ?

22 février 2009

Sortie de notre livre "Cloud Computing et SAAS"

livre-cloud.jpg

SQLI Consulting annonce la sortie de son nouvel ouvrage ouvrage "Cloud Computing et SaaS : une rupture décisive pour l'informatique d'entreprise" écrit par Guillaume Plouin, responsable innovation chez SQLI, et préfacé par Dave Armstrong de Google.

Le cloud computing est en train de révolutionner le monde informatique. Il consiste à externaliser les infrastructures informatiques vers des prestataires spécialisés, au même titre que les entreprises externalisent la production d’électricité vers des spécialistes comme EDF. C’est un virage comparable à celui du web en 1995. Ce livre vous permettra de découvrir en détail les tenants et les aboutissants de cette nouvelle « mutation de l’informatique ».

  • La première partie présente le concept de cette « informatique dans les nuages » et celui du SaaS (Software as a Service) en expliquant ce qui les différencient.
  • La deuxième partie explique quels sont les avantages et les inconvénients du cloud computing pour l’entreprise en prenant successivement les points de vue de la direction, des utilisateurs puis des informaticiens.
  • La troisième partie décrit les étapes à franchir pour évoluer vers le cloud computing.
  • La quatrième partie propose un panorama des offres SaaS aujourd’hui disponibles.
  • La dernière partie, plus technique, décrit les architectures sous-jacentes aux applications. Elle présente les PaaS (Platform as a Service) qui permettent aux entreprises de faire héberger leurs développements spécifiques sur des architectures multi-tenants.

Cet ouvrage s’adresse à tous ceux qui souhaitent comprendre les concepts et les enjeux du cloud computing tant côté « informatique » (chefs de projet, architectes, développeurs, administrateurs…) que côté « usages » (maîtrises d’ouvrage, consultants…).

15 février 2009

Google Apps et la sécurité

Beaucoup s’interrogent sur la sécurité du modèle SaaS proposé par Google. Est-il raisonnable de lui confier la gestion de sa messagerie ? N'y a-t-il pas un risque de piratage accru ? Google va-t-il lire le contenu de nos mails ?

Autant de questions auxquelles nous allons tenter ici d'apporter des réponses. A noter que les éléments de sécurité suivants ne concernent que la version payante « Premier Edition » de Google Apps.

Sécurité du modèle SaaS :

mibComparée à une solution interne où le stockage et l’accès aux mails ne sont possibles qu’à partir du réseau d’entreprise, la solution SaaS de Google Apps parait peu sécurisée. Il n’en est rien.

Google est constamment attaqué par des pirates tentant de voler les données de ses datacenters La sécurité est donc l’une de ses principales préoccupations. Google a compris que sa réussite et sa pérennité dépendent, non seulement de sa solidité financière, mais aussi de sa capacité à protéger efficacement les données de ses clients.

Confidentialité

confidentielOn reproche à Google, comme aux autres fournisseurs de solutions gratuites de messagerie sur le Web, de lire le contenu des messages. Il est facile de s’en apercevoir à cause de la publicité associée à notre messagerie. En fait, les robots de Google lisent le contenu de nos mails pour cibler les thèmes des publicités affichées.

Dans la version payante de Gmail, l’interface de consultation des mails est exempte de toute publicité. Il devient donc inutile, pour les moteurs de Google de lire le contenu des mails. De plus, la confiance que l’on accorde à Google est aussi basée sur le caractère confidentiel des mails hébergés.

Accès

cadenasGoogle assure la sécurité du transport des messages entre le navigateur client et ses serveurs en chiffrant les communications avec HTTPS. C’est une option qui est facultative, mais nécessaire et qui ne réduit pas la performance de la solution.

Pour ceux qui désirent garder un client de messagerie lourd, les protocoles POPS et IMAPS sont également disponibles.

Authentification

identityGoogle gère l’authentification en proposant une page d’identification. Dans ce cas, seule l’empreinte des mots de passe est stockée chez Google.

Google peut déléguer l’authentification à l’entreprise. Dans ce cas un échange de jeton SAML remplace la saisie du mot de passe.

Archivage

coffreLa sécurité concerne aussi le stockage des messages. Certaines entreprises autorisent leurs employés à laisser sur le serveur de mails, leurs messages tant que la taille globale n’excède pas quelques dizaines de Mo. Une fois la capacité atteinte, il devient impossible d’envoyer de nouveaux messages.

Google offre une capacité de stockage de 25 Go par utilisateur sur les serveurs. Il devient donc inutile d’archiver ses mails localement puisqu’ils le sont déjà sur les serveurs de Google.

Antivirus et anti-spam

spamLa solution Google Apps est fournie avec un antivirus performant qui analyse le contenu à risque des messages ainsi que les pièces jointes avant leur téléchargement. La différence avec un antivirus local est que Google parcourt les messages et les pièces jointes avant de les transmettre.

L’anti-spam, tout aussi efficace, bénéficie de l’expérience induite par les millions de messages qui transitent tous les jours sur les serveurs de Google. Chaque message, reconnu identifié comme spam est gardé sur le serveur pendant 14 jours avant d’être définitivement détruit. Cette solution fournit en plus la possibilité de récupérer les mails détruits par erreur pendant 90 jours.

Reprise d’activité sur incident

attestationGoogle a passé la série d’examen « SAS 70 type 2 ». C’est un audit de conformité en matière de protection des informations stratégiques tout au long du cycle de vie des données. Cette certification assure de la mise en œuvre de contrôles et de sauvegardes efficaces.

Par ailleurs, le SLA annoncé par Google est de 99,9%, ce qui assure une indisponibilité de la messagerie inférieure à 9 heures par an. Pour nous prouver sa confiance dans le système, les employés de Google l'utilisent, eux aussi comme messagerie d'entreprise !

Une messagerie interne est-elle plus sécurisée ?

On pourrait le penser si elle n’est accessible qu’en interne. Mais, il n’en est pas moins vrai que les messages sont stockés en clair et que le personnel technique en charge de la messagerie a accès à tous les mails. De plus, la capacité de stockage sur les serveurs internes est plus limitée et donc chaque utilisateur est tenté de faire des sauvegardes régulières sur CD de ses messages, avec tous les risques de vol de données que cela comporte.

En conclusion, on peut donc affirmer, que loin de présenter des risques pour la sécurité des données, l'utilisation de Google Apps renforce le niveau de sécurité des outils de messagerie.

5 février 2009

Présentation de Google Apps

Il y a quelques temps, nous avons fait l’expérience chez SQLI de la migration de notre messagerie interne vers une solution collaborative « on the cloud ».

googleApps

Le « cloud computing », traduit en français par « l’informatique dans les nuages » est la solution, aujourd’hui, pour externaliser son informatique. Ce concept en introduit un autre qui est le SaaS (Service as a Software). En quelques mots, c’est un logiciel qui nous est fourni sous la forme d’un service opérationnel, prêt à l’emploi, sans installation et sans maintenance. Google propose une suite de services aux entreprises, dans son offre Google Apps, dont voici les caractéristiques principales.

Communication unifiée

Google Apps est d’abord un ensemble d’outils de communication unifiée. Cela comprend les outils de messagerie, de calendrier et de messagerie instantanée offrant des capacités très intéressantes et innovantes par rapport à une solution interne. En voici quelques exemples :

  • Un espace de stockage de mails en ligne de 25Go
  • Un outil de recherche dans les mails ultra rapide
  • La possibilité de récupérer ses mails supprimés jusqu’à 1 an
  • La messagerie instantanée textuelle, vocale ou vidéo
  • Un calendrier partageable
  • L’interface adaptée aux navigateurs Internet des mobiles
  • Le mode déconnecté pour accéder à ses mails ou à son calendrier, toujours à partir du navigateur Internet, sans connexion réseau
  • La gestion des contacts internes et externes à l’entreprise. L’offre de messagerie est donc complète, mais elle s’inscrit dans un offre plus globale d’outils collaboratifs.

gmail

Collaboration

Google Apps est aussi une solution collaborative avancée.
La plupart des entreprises sont confrontées à la question du cycle de vie et du partage des documents. Google propose une interface unifiée pour la création et le partage de documents sur Internet. De plus l’interface permet de revenir sur n’importe quelle version de ce document, sachant que toutes ses modifications sont journalisées. Le résultat est que le document est accessible, en écriture par tous les contributeurs et en lecture par tous les autres pour qui les droits ont été positionnés. Autre avantage, le document original, sa version initiale et les versions intermédiaires sont accessibles au même endroit. Personne ne se posera plus la question de savoir où se trouve la dernière version du document.

gdocs

Dans un prochain billet, nous parlerons des inévitables questions de sécurité que posent le SaaS.

28 janvier 2009

Une approche progressive de SOA à l'Etat de Vaud

Xavier Fournier-Morel, senior architecte de SQLI Consulting, directeur technique de SQLI Suisse et co-auteur de SOA, le guide de l'architecte participera à la prochaine conférence sur l'avancée de SOA et des Web Services sur le thème du e-Gouvernement dans les administrations, le 19 Février prochain à Bruxelles.

Dans le cadre de l'intensification des flux d'échanges internes et externes au sein d'une administration publique, plusieurs cas concrets ont été progressivement mis en œuvre autour d'une plateforme d'EAI et de SOA. Seront notamment abordés lors de cette présentation, l'accès au mainframe (référentiel des matrices autorisations), la synchronisation de bases de références (barèmes d'impôts ou celle de référentiels externes (registre central des personnes physiques et contrôle des habitants des communes). Cette présentation dresse à la fois le cadre et les enjeux organisationnels, et architecturaux rencontrés ainsi que les leçons qu'il est possible d'en tirer sur le plan de la gouvernance IT dans le contexte des administrations.

Vous trouverez plus d'informations ici.

31 décembre 2008

Les injections XSS

Mon dernier billet s’intéressait aux attaques des sites Web par injections SQL. Ces attaques visent à prendre possession du site en modifiant les requêtes SQL vérifiant l’authentification de l’utilisateur qui se connecte. Elles peuvent être plus dévastatrices en altérant la base de données des comptes utilisateurs voire même en altérant le serveur hébergeant le SGBD.

Un autre type d’attaque par injection vise principalement les utilisateurs afin de prendre possession de leurs données personnelles. Cette technique, appelée le XSS, pour Cross Site Scripting, permet à un pirate de :

  • Exécuter un script malveillant dans un navigateur Web client
  • Insérer des balises <script>, <object>, <applet>, <form>, <embed>, <iframe>, <a>…
  • Voler des informations de session Web et des cookies d'authentification
  • Accéder à l'ordinateur client

Considérons une page Web dans laquelle un utilisateur peut saisir ses informations personnelles, comme son login, son adresse email et un texte libre. Ce genre de page se trouve sur les forums de discussion par exemple.

pageForum.png

Il n’y a aucune raison, a priori, de tester le contenu du texte libre. Seulement, ce qu’on oublie parfois, c’est que ce texte sera affiché, tel quel, dans la liste des réponses de chaque utilisateur du forum.
Si ce texte est un script Javascript, par exemple, l’affichage de ce texte dans la liste des réponses du forum déclenchera l’exécution de ce script. Le serveur ne subit, apparemment, aucune altération. Seul l’utilisateur, qui navigue sur la page contenant la liste des réponses du forum, sera affecté.
Prenons comme exemple de script :

<script>document.location.replace…</script>

L’utilisateur qui navigue sur le forum sera automatiquement redirigé sur un autre site. Cet autre site peut être visuellement identique et peut demander à l’utilisateur de s’authentifier à nouveau, ce qui va permettre au pirate de voler l’identifiant et le mot de passe de cet utilisateur.

Conclusion

La règle de base à suivre est donc de ne jamais faire confiance aux données saisies par un utilisateur. Toute entrée doit être considérée comme malicieuse et donc doit être testée avant sa sauvegarde dans la base de données du site.

18 décembre 2008

Les injections SQL

Toutes les entreprises sont aujourd'hui sensibilisées aux problématiques de sécurité de leur extranet. Certaines restent néanmoins insuffisamment informées sur les méthodes utilisées par les pirates. Que le site Web soit conçu par un développement spécifique ou par l'utilisation d'un CMS, les attaques malfaisantes doivent être connues des responsables de la sécurité. Un client m'a contacté récemment parce que la vitrine de son entreprise, son site Web, a été altérée. La mission a démontré que la sécurité n'était pas prise en compte dans les développements.

Sécurité réseau.

Il ne suffit pas de positionner des éléments de sécurité réseau pour être complètement étanche à toute attaque de pirates.
Installer un antivirus et un pare-feu devant un site Web est nécessaire, mais cela reste inefficace pour protéger le SI des faiblesses internes de ce site.

Sécurité logicielle.

Le développement d’applications serveur pour le Web nécessite l'apprentissage des bonnes pratiques de programmation. Elles ont pour but de minimiser les bugs et incitent fortement à tester les données reçues.

Considérons une page d’authentification avec deux champs, login et password.

ident

Le code serveur permettant de vérifier l’identité et le mot de passe est une requête SQL qui ressemble à :

request = “SELECT * FROM members WHERE ident=‘” + login + “' AND pwd=‘” + password + “‘”;

Si l’utilisateur saisit talbain comme login et admin123 comme mot de passe, la requête serveur devient :

request = “SELECT * FROM members WHERE ident=‘talbain' AND pwd=‘admin123‘”;

Or si l’utilisateur est un pirate, il pourra entrer sur le site sans connaitre d’identifiant valide, en saisissant dans le champ login :

‘ OR 1=1 –

La requête devient alors :

requete = “SELECT * FROM members WHERE ident=‘‘ OR 1=1 --' AND pwd=‘‘”;

La requête est toujours vraie et cela permet au pirate d'entrer sur le site.
Mais ce n'est tout, le compte retourné par la requête est le premier enregistrement dans la base de données, ce qui correspond, dans la grande majorité des cas à un compte administrateur.
Remarque : le texte de la requête après les – est ignoré et vu comme du commentaire par les SGBD.

Conclusion

Cet exemple a pour intention de sensibiliser les développeurs à l’importance des tests des valeurs reçues avant de les envoyer dans une requête SQL. Il existe d'autres exemples où le résultat est beaucoup plus dévastateur que celui décrit dans ce billet.
Les dernières bonnes pratiques de développement incitent à développer en plusieurs couches, au moins 5, pour séparer le code métier des données et des IHM. Chaque couche logicielle doit faire l’objet d’un test rigoureux des données reçues avant d’être envoyées dans la couche adjacente.

14 novembre 2008

Une application IAM réussie

Nous avons déjà évoqué la possibilité de valoriser le contenu de l’annuaire d’entreprise en créant un portail d’identité efficient. C'est-à-dire que le portail soit efficace, en termes de présentation de son contenu, mais en plus qu’il suscite l’intérêt de tous les collaborateurs de l’entreprise.
Pour réussir ce pari, l’application IAM doit suivre certaines règles.

Intégration

L’application d’identité doit être complètement intégrée au portail d’entreprise. Il ne faut pas que l’utilisateur ait l’impression de changer de contexte quand il navigue sur son portail. Les couleurs, les fontes, le logo de l’entreprise, le format des cadres, tout cela doit être respecté. De plus en plus de portails, comme Liferay proposent l’intégration par portlets, ce serait un plus que l’application d’identité respecte cette compatibilité. L’application d’identité doit être protégée pour ne pas que quiconque voit n’importe quelle donnée sur autrui. En revanche, si elle fait apparaître une page d’authentification, nous pouvons considérer que l’intégration au portail n’est pas terminée.

Orientation métier

L’application doit présenter des données métier. Les données présentes dans l’annuaire d’entreprise sont techniques. Seuls quelques élus se plaisent à parcourir les arbres LDAP et font mine de tout comprendre. Tous les autres employés doivent avoir accès à cet annuaire, mais par des vues adaptées à leur métier et à leur besoin et dont les données brutes sont traduites.

Reflet organisationnel

L’application doit refléter l’organisation de l’entreprise. La particularité de l’annuaire LDAP est qu’il peut être construit selon le modèle organisationnel de l’entreprise et présenter les directions, les départements, les agences… Tout collaborateur, surtout s’il est nouveau dans l’entreprise, peut alors consulter l’organigramme, visualiser précisément la structure dans laquelle il travaille et se situer par rapport au reste de l’organisation.

Rapidité

Combien d’applications de gestion d’identité sont lentes ! Ce constat est alarmant. Les utilisateurs finissent par délaisser l’application. Les deux principales raisons sont que l’application a été mal programmée et/ou que le référentiel d’identité a été mal conçu. Une mission de conseil permettra alors de déterminer la cause et améliorer la performance de la solution.

Technique

Pour éviter le côté statique d’une application IAM, qui ne fait que présenter des informations d’identité, il est intéressant de pouvoir y adjoindre un moteur de workflow. L’application peut alors permettre à chacun de proposer des modifications qui seront validées par un manager ou une équipe RH. L’application peut même devenir une interface de gestion de certificat dans une PKI. Intégrer un outil de provisioning apporte la dimension horizontale qui manquait à l’application pour les administrateurs du SI. À partir du portail d’entreprise, il est alors possible d’administrer tous les référentiels du SI et de limiter les saisies répétitives sur chacun d’entre eux.

Pour conclure

Réaliser une application de gestion de contenu d’annuaire utile à tous les profils de l’entreprise n’est pas trivial. La réalisation peut être un échec si les éléments cités précédemment sont omis, même partiellement.

31 octobre 2008

L'industrialisation, une démarche incontournable

Les niveaux d’exigences et les contraintes actuelles conduisent la plupart des acteurs du secteur informatique à s’accorder sur le fait, qu’après avoir vécue une phase de professionnalisation, la production de logiciels doit dorénavant prendre la voie de l’industrialisation. Pour autant, la simple évocation des concepts de software factory et d’intégration continue évoque encore trop souvent la mise en place « d"usines à gaz » très complexe, coûteuse, et qui échappe à tout contrôle. Il n'en est rien : une approche pragmatique et basée sur le bon sens permet d’appréhender de manière efficace l’objectif d’industrialisation les développements.

Un objectif ambitieux qui doit être appréhendé sur la durée

Même si nous (informaticiens) souhaiterions, et souvent pourrions - aller beaucoup plus vite que ne l’ont fait les autres industries, nous devons faire preuve de la même humilité et de la même patience qui les a conduit vers les niveaux de productivité et de qualité que nous leur envions.

Forts de leurs expériences nous pouvons aisément éviter de répéter les mêmes erreurs. Nous savons par exemple qu’il ne faut pas partir dans une industrialisation massive et aveugle, mais qu’il faut conserver les particularismes différenciateurs lors de la mise en œuvre des méthodes, processus et outils de standardisation et d’uniformisation.

Une approche itérative est garante d’une planification budgétaire maitrisée

Cette approche raisonnée commence par l’audit des méthodes, outils et pratiques de production actuellement en vigueur. Elle permet de mettre rapidement en évidence les goulets d’étranglement et d’identifier les points présentant les meilleurs ratios entre, d’une part, les coûts et difficultés (techniques, organisationnelles, culturelles, …) de mises en œuvre, et, d’autre part les gains et améliorations potentielles.

L’idée principale est d’élaborer de manière collaborative un plan de route. Celui-ci permet de planifier des déploiements d’outils et des phases d’accompagnement, d’acceptation et d’appropriation jalonnés garants de la capacité de mesurer à intervalles régulier les retours sur investissement obtenus.

Une affaire de spécialistes, qui ne doit pas le rester

Loin d’aboutir à des profondes remises en cause et à la proposition de changements drastiques en mode « big-bang », notre vision de l’industrialisation conduit à un accompagnement ciblé, progressif, et adapté aux capacités d’absorptions des équipes projets.

A de très rares exceptions près les industriels ne conçoivent et ne fabriquent pas par eux-mêmes leurs outils ou usines de production. Les recommandations, les conceptions et les déploiements des outils de production sont l’apanage de spécialistes. Ces derniers doivent s’adapter et intégrer les besoins réels et spécifiques de leurs clients. En effet, par le passé, les volontés d’industrialisation informatiques ont généralement conduis à des préconisations standards et à des solutions prêtes à l’emploi, lesquelles se sont révélées être généralement disproportionnées et finalement inopérantes. Il est pourtant aisément compréhensible que la centrale nucléaire qui convient parfaitement à EDF trouve plus que difficilement sa place dans la boite à outils d’un artisan électricien…

Enfin, lors du déploiement des premières instances d’usines logicielles, il est essentiel d’accompagner les équipes de production concernées dans l’appropriation de leur nouvel environnement de travail industrialisé. Cette étape clé passe non seulement par des plans de formation mais également par une phase de coaching et de suivi à intervalles réguliers qui permettent d’ajuster l’outillage par rapport aux épreuves de la construction réelle.

Lors de mes prochains billets je m’attellerais à expliquer plus en détail notre perception de « l’industrialisation logicielle pragmatique» tout en l’illustrant par des solutions concrètes.

13 octobre 2008

La sécurité sur Internet

sécurité sur Internet Comment se protéger aujourd’hui quand est exposé sur Internet ? Dans son entreprise, en Intranet, on peut mettre en place des solutions de SSO. Elles évitent aux utilisateurs de saisir de nombreuses fois leurs mots de passe. Mais sur Internet, il y a toujours la page d'authentification qui est tant convoitée par les pirates, qui ne peut être remplacée par une solution de SSO. De plus, rares sont les entreprises qui se lancent aujourd'hui dans la fédération d’identité.

Quelles solution leurs restent-ils ?

Ce n’est plus un secret, les pirates accèdent aux sites Web sécurisés parce qu’ils connaissent les failles des OS serveurs, des serveurs d’application, des serveurs Web et des portails de gestion de contenu. Mais surtout, ils profitent de la négligence des développeurs. Développer un programme serveur est autrement plus compliqué qu’un programme client. C’est surtout plus fastidieux. Le développeur doit aujourd’hui connaître les méthodes des pirates pour construire son programme en conséquence.

Les techniques de piratage

Les agissements des pirates concernent le vol de données privées et peuvent aller jusqu'à la suppression de l'intégralité des bases de données. L'injection SQL est le nom qu'on donne à ce genre d'attaques. Elle peut aussi permettre d'exécuter des commandes système sur le serveur hébergeant la base, arrêter un firewall, un antivirus...

Quand ce ne sont pas les données du serveur qui sont visées, ce sont les utilisateurs innocents. Les fameux XSS pour Cross-Site Scripting, et CSRF pour Cross-Site Request Forgeries permettent d'injecter du code JavaScript (ou ASP ou PHP) dans une page Web qui sera exécuté à l'insu du prochain visiteur de la page Web infectée. Le pirate récupérera alors au moins le cookie de session et pourra prendre possession des données de l'utilisateur innocent.

Les méthodes de protection

Il existe bien évidemment des méthodes pour se protéger. En revanche, elles ne dépendent pas de programmes ou de serveurs à mettre en frontal ni même de la cryptographie. Les seules bonnes méthodes efficaces concernent la revue de code des applications Web !
Pour ma part, j'ai recensé plusieurs bonnes pratiques de programmation à respecter et à mettre en œuvre pour arrêter totalement les injections SQL et le XSS. Elles sont très efficaces et surtout suffisantes. Elles sont basées essentiellement sur la vérification des données reçues.

- page 1 de 5