WSO2 Identity Server 7.0.0

Gregory EVE
Smile with WSO2
Published in
8 min readMar 6, 2024

WSO2 à la conquête du marché du CIAM B2B ! WSO2 a-t-il trouvé la porte d’entrée pour faire partie des grands dans le secteur très concurrentiel de l’IAM, par cette niche à fort potentiel ?

On était resté un peu sur notre faim lors de la sortie de la précédente version WSO2 Identity Server 6.1, et on regardait avec envi les avancées de l’offre SaaS Asgardeo. Cette version 7.0.0 va enfin combler nos attentes avec notamment un alignement fonctionnel entre Asgardeo et WSO2 Identity Server 7.0.0.

Si l’on doit retenir 4 éléments de cette nouvelle version :

  • gestion d’organisations B2B
  • gestion des autorisations d’API
  • nouvelle interface d’administration en version finale
  • configuration dynamique des UI

B2B CIAM

Vous souhaitez mettre à disposition des applications à vos partenaires, clients ou bien même à des entités de votre propre organisation. Mais pour chacune de ses entités, vous n’avez pas un utilisateur, mais plusieurs. Vous souhaitez que chacun ait un compte nominatif et que la gestion des accès soit déléguée à un responsable au sein même de chacune d’entre elle. C’est là que s'insèrent les nouvelles capacités de WSO2 Identity Server 7.

Gestion des organisations

WSO2 Identity Server, depuis ses débuts, avait une fonctionnalité de gestion de royaumes (realm/tenant). Cette fonctionnalité était centrée sur l’isolation virtuelle de populations et d’usage. Mais le besoin ici exprimé, est de pouvoir gérer différentes populations identifiées qui peuvent être en interaction les unes avec les autres ou étant des sous-populations d’un ensemble.

Pour répondre à ce challenge, WSO2 Identity Server, et le service Asgardeo, embarque dorénavant une fonctionnalité de gestion d’organisation multi-niveau au sein d’un même tenant. Il vous ait maintenant possible, par exemple, d’avoir une organisation root qui contient une sous-organisation employées et une autre clients B2B qui contient elle-même des sous-sous-organisations pour chaque client.

Onboarding des organisations

2 scénarios de création des organisations ont été imaginés :

  • Directif (Sales-led) : dans ce mode, c'est l’administrateur de l’organisation parente qui crée et nomme les administrateurs des organisations enfants
  • Self-service : dans ce mode, c’est le responsable de l’organisation tierce qui lui-même va créer son organisation.

Le premier mode est directement intégré au sein de la console d’administration. Le second, étant spécifique à chaque besoin métier, peut être mis en place à travers l’usage d’une API.

Délégation d’administration

Les responsables d’organisation auront alors la main pour administrer eux-mêmes leur espace d’identité :

  • gestion de ses utilisateurs, groupes et rôles
  • fédération d’identité
  • gestion de ses ressources d’APIs
  • partage d’applications avec une autre organisation (sœurs, enfants, etc.)
  • personnalisation du workflow d’authentification aux applications
  • personnalisation des interfaces graphiques de connexion

Gestion des autorisations d’API

Qui ne sait jamais posé la question de comment lier des utilisateurs à des scopes OAuth2 pour gérer les droits d’accès ? C’est à cette question que répond WSO2 grâce à cette nouvelle fonctionnalité. L’éditeur a même étendu sa réflexion à, comment doivent être géré les autorisations au sein d’une application moderne et comment déléguer cette gestion en dehors de l’application elle-même. Pour prouver la pertinence de sa réponse, l’éditeur a décidé de l’utiliser pour ses propres besoins. C’est ainsi que l’ensemble de la gestion des permissions du produit repose maintenant sur cette fonctionnalité.

Déclaration de ressources d’API

Le produit dispose désormais d’un catalogue de ressources d’API. Il vous permet de référencer toutes les ressources utilisées par vos applications et de lister, pour chacune d’entre elles, les scopes associés avec une description des droits qu’ils donneront.

Association des ressources d’API aux applications

Ensuite il est nécessaire d’indiquer, pour chacune de vos applications, les APIs qu’elle va consommer et les scopes utilisées.

Contrôle d’accès par rôle (RBAC)

Pour terminer la boucle, vous allez pouvoir associer des permissions à des rôles, qui seront en réalité les scopes oauth 2 des APIs que vous avez déclarés. Vous avez ainsi un système de gestion d’autorisation complet. Votre application pourra ainsi se concentrer uniquement sur l’application des scopes, associer aux jetons des consommateurs, pour donner accès ou non à une de ses fonctionnalités.

Roles applicatifs

En complément, l’éditeur a mis en place la notion de rôles applicatifs (que l’on appelle parfois profile chez ses concurrents) qui limite la portée d’un groupe de permission à une seule application.

Interfaces Graphiques

Design System

WSO2 a beaucoup travaillé sur l’identité graphique de ses produits ces 3 dernières années, en a émergé un nouveau design system : Oxygen UI

Celui-ci permet, dés-à-présent, d’uniformiser les différentes identités de l’éditeur, de respecter les normes d’accessibilité (WCAG 2.1) et d’industrialiser la réalisation de nouvelles UIs.

Pour en savoir plus : https://wso2.github.io/oxygen-ui/

Console d’administration

La console d’administration sort enfin en version finale ! Développée depuis WSO2 IS 5.11 (2020) on attendait avec impatience d’enfin pouvoir se débarrasser de la console Carbon qui commençait à dater d’un autre siècle.

Mai en réalité, c'est sous le capot qu'ont eu lieu les plus gros changements et qui expliquent cette maturation lente. WSO2 a repensé complètement l’administration de son produit avec une approche moderne et un travail important sur l’expérience utilisateur (UX) et développeur (DX). Ainsi 3 points importants sont à noter

  • APIs REST d’administration couvrant l’ensemble des fonctionnalités du produit documenté par un contrat Open API 3.0
  • Usage d’une sémantique Oauth 2 / OpenID Connect en remplacement de l’historique sémantique SAML 2
  • Accompagnement des administrateurs pour les guider vers les bons choix et leur permettre l’accès aux informations de manière rapide et efficiente.

Cette évolution voit ainsi apparaitre plusieurs nouvelles fonctionnalités :

Modèles d’application

WSO2 IS 7.0.0 a mis en place des modèles d’application pour faciliter le choix du protocole adapté et pré-configuré celui-ci en fonction des contraintes inhérentes à votre application (SPA vs mobile vs web traditionnel vs machine 2 machine)

Éditeur Visuel du workflow d’authentification

Il est maintenant possible de se rendre compte du rendu graphique des différentes étapes d’un workflow d’authentification directement au sein de la console pour faciliter sa compréhension pour un public non initié.

Configuration dynamique des UI

Cette fonctionnalité longuement demandée arrive enfin au sein du produit ! Il est désormais possible de personnaliser les UIs du produit pour les mettre à votre charte graphique directement par configuration via un éditeur au sein de la console d’administration ou via api.

Et, cerise sur le gâteau, il est possible de réaliser cette configuration par organisation.

Conformité OpenID Connect — FAPI 1.0

Financial-grade API (FAPI) est une spécification du OpenID Connect FAPI Working Group. Elle définit une liste de prés requis techniques à mettre en œuvre pour renforcer la sécurité des échanges. Cette spécification, bien qu'initialement pensé dans le cadre d’un usage financier, peut être utilisé dans n’importe quel cas d’usage ou une sécurité renforcée est nécessaire.

FAPI défini 2 profils :

  • Baseline profile qui vise les services avec un risque de sécurité modéré (pas de non-répudiation, pas d’assurance que le client est bien l’utilisateur désigné du jeton utilisé)
  • Advanced Profile qui vise les services avec un haut risque de sécurité

Pour être conforme à la spécification WSO2 a ajouté les implémentations des standards suivants :

Authentification

Intégration authentification native pour les applications mobiles

WSO2 a cédé à la pression des métiers en fournissant dorénavant une API pour intégrer le workflow d’authentification directement au sein d’une application mobile native.

Cette API permet de dérouler dynamiquement les écrans du parcours d’authentification au sein de l’application par jeu de requêtes/réponses pour suivre les différentes étapes du workflow configurées pour cette application au sein de WSO2 IS.

Pour renforcer la sécurité, WSO2 à implémenter les APIs Android et iOS pour attester de l’authenticité de l’application cliente.

Notre avis : Attention, cette approche est complexe à mettre en œuvre, possède des limitations et nécessite de renforcer la sécurité de l’application mobile. Elle ne doit être utilisée qu’en dernier recours. Il est également dommage que l’usage des APIs d’attestation ait été restreint uniquement pour cet usage.

Passwordless factors

Enfin! Il est maintenant possible d’utiliser un facteur d’authentification email ou sms OTP comme facteur principale d’authentification et donc de se passer d’une première étape pour identifier l’utilisateur.

Le facteur Magic Link a quant à lui était amélioré, en permettant de recevoir un email de connexion sur un autre navigateur ou équipement.

SDKs

WSO2 fourni dorénavant des SDKs pour faciliter l’intégration au sein des applications :

  • React & React Native
  • Angular
  • Next
  • ExpressJS
  • NodeJS
  • Tomcat
  • Flutter
  • Android
  • iOS

DevOps

Client en ligne de commande

Comme WSO2 API Manager, WSO2 Identity Server possède désormais son propre utilitaire en ligne de commande appelé IAM-CTL.

Dans cette première mouture il vous permet d’importer et d’exporter vos :

  • applications
  • identity providers
  • claims
  • secondary user stores

Et petit bonus il est possible de réaliser un export et import complet ce qui va grandement faciliter l’intégration du produit dans des processus de CI/CD.

Et vous que pensez-vous de cette nouvelle version?

--

--

Gregory EVE
Smile with WSO2

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