WSO2 Identity Server 5.11.0

Gregory EVE
Smile with WSO2
Published in
8 min readNov 19, 2020

Renouveau des interfaces d’administration, approfondissement du multi-tenancy, découplage des groupes et rôles. Cette nouvelle mouture, très riche, va combler les exploitants !

Console d’administration

L’éditeur WSO2 continue à migrer progressivement l’ensemble de ses APIs vers du REST JSON. Il entame maintenant la deuxième étape de son programme CIAM en remplaçant progressivement l’historique interface Carbon par une nouvelle console d’administration SPA en React (en Bêta dans cette version).

Cette nouvelle console d’administration est découpée en 2 espaces :

Développer

le premier espace, appelé “Develop”, est consacré à l’accrochage du produit aux applications clientes et aux fournisseurs d’identités tiers.

WSO2 ne s’est pas contenté d’une simple migration il a revu sa terminologie, l’organisation du paramétrage et ajouté des fonctionnalités d’accompagnement à l’accrochage.

La terminologie OAuth/OpenID prend le pas sur celle de SAML. On ne configurera plus des “Service Providers” mais des “Applications”.

WSO2 a mis à disposition un assistant de configuration basé sur des modèles de cas d’usages traditionnels. On retrouvera ainsi la connexion à une application web, à une SPA, une application mobile et à une application lourde.

Pour pleinement aider les utilisateurs WSO2 IS intègre une documentation pas à pas pour mettre en œuvre cet accrochage.

Pour configurer le processus d’authentification de votre application, fini les formulaires, place au glissé-déposé.

On retrouvera le même type de fonctionnalités pour la fédération avec des fournisseurs d’identités tiers.

Gérer

L’espace “Manage” regroupe toutes les autres configurations :

la gestion d’identité, avec la gestion des annuaires, utilisateurs, groupes, rôles et le mapping des attributs.

On notera en particulier la nouvelle possibilité de voir et terminer les sessions d’un utilisateur par un administrateur :

la gestion des modèles de messages électroniques avec l’apparition d’une coloration syntaxique et d’un outil de prévisualisation.

La gestion des politiques de sécurité résidentielle.

Comme vous le constaterez certaines fonctionnalités comme la configuration des workflows d’approbation sont manquantes. Leur migration est prévue dans un second temps, dans la version 5.12 du produit prévu pour avril 2021.

Mon Compte

Le “User Portal”, introduit dans la version 5.10, est renommé en “My Account”. Peu de changements pour celui-ci dans cette nouvelle version.

Au sein de la gestion des données personnelles le support des informations en lecture seule a été ajout.

La photo utilisateur, en plus du support de Gravatar, s’enrichit d’une fonctionnalité d’upload de photo.

Attention la gestion des approbations a été déplacé de l’espace “Mon Compte” vers la partie “Gestion” de la nouvelle Console d’administration.

Traduction en français

Smile a contribué à cette nouvelle version en corrigeant un certain nombre de bugs et également en traduisant l’ensemble des nouvelles interfaces du produit en français.

Mais également les pages d’authentification et de recouvrement :

Et dans un ensemble plus large nous avons rendu possible l’internationalisation des pages d’authentification SMS OTP, Email OTP, TOTP, X.509 où le texte était jusqu’à présent codé en dur.

Il reste encore quelques termes en anglais sur lesquels nous n’avons pas encore la main (comme les configurations des connecteurs) et les e-mails.

Appel à tous les volontaires si vous souhaitez nous aider à améliorer la traduction et pérenniser la disponibilité de la langue française dans le produit vous pouvez contribuer en réalisant des Pull Request directement sur le dépôt de l’éditeur : https://github.com/wso2/identity-apps

Groupes et Rôles

Depuis toujours les produits WSO2 considèrent qu’un groupe d’utilisateurs est également un rôle. Ce temps est maintenant révolu. La version 5.11 introduit la séparation de ces 2 notions. Un groupe n’est maintenant plus qu’un groupe d’utilisateurs au sens annuaire. Un rôle est une fonction applicative regroupant un ensemble de permissions attribuables à un utilisateur.

WSO2 introduit avec ce changement la séparation des écrans de gestion de ces 2 notions et l’ajout d’une ressource SCIM 2.0 Roles”.

Il est possible d’affecter des groupes et rôles à des utilisateurs ou de lier des rôles à des groupes.

Vérification du numéro de téléphone

A l’image de ce que propose WSO2 IS pour les e-mails, celui-ci propose dorénavant la validation du numéro de téléphone principal à la création et à la mise à jour de celui-ci. Pour ce faire WSO2 enverra un OTP par SMS vers le nouveau numéro pour le valider.

Chiffrement des données sensibles

WSO2 introduit le chiffrement symétrique des données sensibles et fait le choix de l’activer par défaut à partir de la version 5.11 en lieu et place d’un chiffrement asymétrique toujours disponible.

WSO2 souhaite simplifier l’exploitation des données sensibles sur son produit tout en conservant un haut niveau de sécurité. Actuellement, à l’expiration du certificat de chiffrement, ou quand on souhaite le changer, il est nécessaire de migrer l’ensemble des données chiffrées en utilisant les nouvelles clés. (dans un environnement PCI-DSS c’est une tâche qui doit être effectuée tous les 6 mois…)

Le compromis trouvé par WSO2, et employé par de nombreux autres éditeurs, est de chiffrer les données sensibles par une clé symétrique et ne protéger que celle-ci par un chiffrement asymétrique au sein d’un coffre-fort (i.e. le Secure Vault embarqué). Le gain est ainsi immédiat : plus aucune donnée n’est à migrer à chaque renouvellement de certificat ; seule la clé symétrique est à migrer.

Configuration par gestionnaire de version

Dans le cadre de la mouvance DevOps et de l’usage d’outils de CI/CD la configuration des applications et fournisseurs d’identité actuel n’est pas optimale. WSO2 a souhaité apporter une solution à ce problème en permettant de charger des configurations depuis un dépôt Git.

Pour le moment l’implémentation a été pensée pour Github avec la possibilité de scruter un dépôt de manière régulière ou d’utiliser un Webhook. Comme toujours ce mécanisme est pleinement extensible pour brancher votre plateforme de gestion de version.

Multi-tenancy

L’éditeur continue à améliorer son support de multi-tenancy en rendant progressivement l’ensemble de ses configurations et APIs pleinement compatible avec ce mode de fonctionnement. On trouvera par exemple dans cette version l’ajout de la gestion des URLs par tenant dans les métadonnées SAML, OIDC, les endpoints Passive STS ou SCIM 2.0.

SAML

WSO2 Identity Server repose sur la librairie OpenSAML pour le support du protocole SAML. La version 2 utilisée jusqu’à présent étant dépréciée depuis 2016 : il était temps de la mettre à jour ! Non sans mal le produit utilise maintenant OpenSAML 3.

Ce changement a nécessité de créer un composant dédié à WSO2-Trust, qui repose sur OpenSAML 2 et de réimplémenter complètement le support de WS-Féderation (Passive STS) sur CXF.

APIs CORS

WSO2 a introduit une nouvelle API REST pour gérer les CORS des différentes applications.

Runtime claims

Il est maintenant possible d’ajouter et modifier des claims de manière temporaire à un utilisateur via l’authentification adaptative. Ces claims ne seront valables que durant la session et ne modifieront pas les données de l’annuaire. C’est une fonctionnalité fort intéressante dans la volonté de mettre en œuvre un environnement Zéro Trust pour adapter à la volée les droits d’un utilisateur en fonction du contexte d’authentification :

function onLoginRequest (context) {   
executeStep(1, {
onSuccess : function(context) {
Log.info('First Authentication success');
//Ajout d'un claim temporaire
context.steps[1].subject.claims[ 'http://wso2.org/custom/claim1'] = "value1";
//surcharge temporaire d'un claim existant
context.steps[1].subject.claims[ 'http://wso2.org/claims/lastname'] = "newLastNameValue";
}
});
}

Nouveaux connecteurs

Les connecteurs évoluent au fil des évolustions de la solution. Voici un petit tour d’horizon des nouveautés.

Evident ID

WSO2 offre maintenant la possibilité de se connecter au service de vérification d’identité Evident.

Open Policy Agent

Il est maintenant possible d’intégrer Open Policy Agent avec WSO2 Identity Server au lieu d’utiliser le moteur XACML embarqué.

Le principe est simple : durant une authentification adaptative, un appel est réalisé pour demander à OPA si l’on autorise l’utilisateur à se connecter dans le contexte courant.

Naver

Intégration au premier portail et moteur de recherche de Corée du Sud.

Kakao

Intégration au second portail de Corée, Daum, et à l’application de messagerie KakaoTalk.

Et pour la 5.12 a-t-on des informations ?

Pour les plus curieux d’entre vous WSO2, n’a pas encore complètement figé le contenu de sa prochaine version mais ses équipes travaillent déjà sur de nombreux axes :

  • Débogage de flux d’autorisation à travers VS Code (une version alpha est disponible)
  • Authentification par push et biométrique à partir d’une application mobile Android ou iOS (avec la fourniture d’une libraire pour l’intégrer dans n’importe quelle application)
  • Intégration de services SaaS ou d’applications leaders sur leur marché
    SIEM/logs : Splunk, Prometheus, ELK, etc.
    IDV : Evidient ID, IDEMIA, Socure, Jumio, etc.
    Web Analytics : Google Analytics, MixPanel, etc.
  • SDK pour de nombreux langages ou Framework comme React, Angular, .NET, IIS, Java, Tomcat, GO, Flutter, PHP
  • Identification par d’autres attributs que le username
  • Possibilité de pouvoir changer les thèmes des UI à chaud et pas à la compilation
  • Conformité et extension du support de SCIM 2
  • Intégration à des solutions de coffre-fort externe comme le Vault de HashiCorp.

et bien plus… ;-)

--

--

Gregory EVE
Smile with WSO2

Solution Architect at Smile, french lover and open source supporter. Integrate, Search, Leverage and Secure your data what else?