Il est clair que l’interopérabité que nous sommes en train de mettre en place avec SemApps aura un intérêt très limité tant que WebID-OIDC ne sera pas actif. En effet, les utilisateurs connectés sur une instance ne pourront pas modifier des données sur d’autres instances, sauf si les WebACL sont désactivés.
Etant donné que la plupart des projets actuels utilisent le SSO des Communs, une idée qui a émergé serait d’utiliser temporairement ce SSO, en y ajoutant le WebID de l’utilisateur (l’URL de son profil). Il suffirait, lors de la connexion, de vérifier si l’utilisateur a déjà un WebID attaché à son profil:
- Si oui, on le considère comme un utilisateur distant. Les droits WebACL peuvent s’appliquer.
- Si non, on crée un nouveau compte sur le serveur local, et on attache le WebID généré au profil de l’utilisateur.
La condition reste donc de pouvoir attacher un WebID à l’inscription. J’ai fait une heure ou deux de recherches hier sur ce sujet, car cela me tendait un peu. J’ai d’abord eu de bons espoirs, mais finalement je suis tombé sur ce post Stackoverflow qui indique que la mise à jour des données utilisateurs ne sont pas prévues dans la spec OIDC, mais qu’il faut passer par d’autres services ou par des implémentations spécifiques:
The userinfo endpoint should support GET and POST request methods, but they both just return information about a user. The specification doesn’t speak about the possibility to update the data.
An OpenID Connect server implementation can either keep the user data in its own storage or fetch it from a remote identity management system (IAM). So there can be an OpenID Connect server implementation specific endpoint for updating the user data or the IAM server can provide some API. In both cases you will probably need a special OAuth2 scope to perform the update.
C’est un peu déprimant cette complexité… Il y a pleins de choses qui semblent possibles via KeyCloak, il est même question de « federated identities », mais il est difficile de comprendre par où prendre la bête. Peut-être que @fluidlog aura plus de chances que moi sur ce sujet ?
@balessan nous a expliqué que Startin’Blox était aussi passé par ces réflexions, mais qu’ils étaient finalement passé à WebID-OIDC parce qu’ils avaient découvert des limitations à ce système de SSO unique. Benoît, est-ce que tu as plus d’informations sur le sujet ? Peux-tu éventuellement pointer les autres membres de SIB sur cette discussion ?