Ory Hydra: SSO embarqué

Ory Hydra est un serveur OAuth 2.0 and OpenID Connect a intégré dans vos projets Golang.

Ory Hydra: SSO embarqué

Dans mon ancienne entreprise, qui réalisait une application VR dédié au traitement de la douleur chronique, et en particulier l'endométriose, nous devions avoir plusieurs services web, applications web, applications Android et application desktop, nécessitant une authentification forte (milieu hospitalier), des utilisateurs et des applications.

Avec l'équipe de développement web, nous nous sommes alors tourner vers une authentification unique, et avons trouvé Ory Hydra qui permet une intégration fine dans notre écho système, notre API principale étant déjà en Go.

En gros, Ory Hydra s'occupe du protocole et vous des données.

Notez que Ory propose un ensemble de couche logiciel permettant la gestion des identités, authentifications et autorisation. Je vous invite à regarder de plus prêt ici : https://www.ory.sh/docs/ecosystem/projects

Ce mécanisme nous a permis d'intégrer des algo vérifiant la licence (propriété, expiration, ...) des utilisateurs et de leur casque au moment de l'authentification en plus d'une gestion RBAC (autorisation basé sur les rôles).

C'est une solution vraiment très intéressante si vous souhaitez réellement intégrer OAuth ou OpenID Connect à vos API sans avoir a se gérer ce fastidieux protocole, mais avec un besoin de personnalisation un peu poussé.

Pour faire simple, on va exécuter Ory/Hydra d'un côté (container docker via compose) avec sa base de données (pour les session, token, etc) et d'un autre nous allons créer notre API a sécurisé.

Lorsqu'une requête d'authentification sera faite, on sera redirigé vers Hydra, qui reverra a son tour vers le formulaire d'authentification hébergé dans votre application.
Il y a bien sur tout un système de codes et vérifications pour sécurisé les échanges et les états entre Hydra et vos formulaires.
Auprès authentification retour sur Hydra qui génère session et token et nous renvoi le tout pour l'utilisateur et en ayant entre temps gérer le consentement de l'utilisateur de la même manière.

Le token (jwt) pourra alors être transmis à votre api dans toutes les requêtes (classique) et pour pourrez le vérifier / valider auprès d'Ory Hydra.

L'avantage, non négligeables, de ce système est que vous êtes seul maître des données, de ce que vous mettez dans le jwt, ou de la manière dont vous le validez, le vérifiez.
Vous pouvez ajouter un couche métier propre a votre activité dès la phase d'authentification.