OAuth Server by DnC est conforme à La norme OAuth 2.0 (RFC 6749) et s’appuie sur la librairie OAuth2 Server Library for PHP développée par Brent Shaffer (voir : http://bshaffer.github.io/oauth2-se...).
Cette API n’assure pas l’identification de l’utilisateur ni la gestion du consentement et encore moins les fonctionnalités avancées décrites ci-après.
DnC a encapsulé cette bibliothèque dans une application serveur, en apportant les développements suivants :
Le protocole OpenID est implémenté avec des extensions exclusives :
- Avec les flux OpenID Connect, le contrôleur Authorize est développé pour assurer la SSO et connexion unique (Single Login Identification, SLI) sur de multiples applications, la ré-authentification silencieuse (Silent Re-Authentication, SRA) et la déconnexion unique (Single Login Out, SLO). Voir : SLI, SSO, SLO et SRA sont dans un bateau : OAuthSD. Alors que la plupart des implémentations exigent des développements du côté des applications clientes, OAUthSD vous offre ces fonctionnalités sans aucune modification de celles-ci, pourvu qu’elles soient compatibles avec OpenID Connect.
- OAuthSD offre différentes méthodes d’identification de l’utilisateur et met en œuvre la Validation en 2 étapes (Two Factor Authentication, 2FA) . Le système d’identification d’une organisation peut également être utilisé. Enfin, le procédé d’identification NoPassConnect permet de se passer des mots de passe.
- Le monitoring de l’état de l’authentification permet à l’utilisateur final de visualiser l’état de la session OIDC. L’utilisateur est averti de l’imminence de la fin de session et peut la prolonger.
- Dans un domaine du réseau local contrôlé par Kerberos, OAuthSD utilise l’authentification Kerberos de sorte que l’utilisateur ayant initié une session locale (avec Active Directory s’agissant du système Windows) n’a pas à s’identifier à nouveau pour accéder aux application clientes du serveur OAuthSD.
- OAuth Server by DnC permet d’ajouter aux données utilisateur (claims), prévues par la norme OpenID Connect, des données supplémentaires correspondant aux processus métiers. On peut par exemple transmettre aux applications SaaS les paramètres relatifs aux abonnements des souscripteurs, comme illustré dans cet article : SaaS et OIDC : un mariage réussi grâce à OAuthSD !.
OAuthSD complète le noyau OAuth2 :
- Pour permettre aux serveurs de données protégées de valider les jetons d’accès et d’identité soit par introspection), soit en fournissant les informations sur les clés publiques associées aux applications.
- En intégrant les meilleures méthodes d’identification de l’utilisateur final à l’origine de l’autorisation pour assurer la fonction d’authentification, y compris en intégrant un éventuel système d’identification existant dans l’organisation.
- Pour renforcer l’identification des applications afin de protéger des malwares l’accès aux données protégées.
- En offrant la possibilité de moduler les portées d’autorisation en fonction de l’application cliente et de l’utilisateur final, une fonctionnalité exceptionnellement intéressante d’OpenID Connect. Voir : Définition des scopes OIDC et généralités sur leur utilisation par les applications.
- En offrant une API HTTP REST + TreeQL permettant d’intégrer OAuthSD dans un système de gestion des utilisateurs et des applications ainsi que la définition des privilèges.
OAuthSD offre un interface d’exploitation et une documentation
- Un interface utilisateur convivial (comme sur ce site web) permet de configurer le serveur et offre une documentation détaillée pour sa mise en œuvre ainsi que pour l’adaptation de vos applications.
- Des dizaines d’événements différents sont suivis à la microseconde et sont présentés dans des graphes et tableaux interactifs permettant d’identifier avec précision les erreurs et les anomalies significatives d’abus ou de tentative d’intrusion.
- L’administrateur du serveur est alerté par e-mail des tentatives d’intrusion et des utilisations abusives.
- Un rôle d’Administrateur d’applications s’ajoute aux rôles définis par la norme : ceux-ci créent et gèrent sur ce serveur les applications clientes dont ils délèguent l’authentification, et dont ils sont donc propriétaires. Ils peuvent également documenter sur le site web du serveur les aspects particuliers du processus d’authentification de leurs applications (ils sont Auteurs au sens de SPIP).
- Le modèle d’application est étendu avec des données qui permettront de gagner la confiance de l’utilisateur en l’informant avec précision sur l’identité de l’administrateur de l’application, le fonctionnement de l’application et l’utilisation des données personnelles.
- Les portées de l’autorisation (Scopes) sont explicitées, afin que l’utilisateur final puisse les approuver en toute connaissance de cause.
- Alors que le paramètre State est facultatif dans la définition du protocole OAuth, ce paramètre est obligatoire pour OAuthSD afin de renforcer la sécurité.
- Lors de la procédure d’autorisation, le mot de passe de l’utilisateur final n’est pas entré au clavier, mais à la souris dans une grille aléatoire (GhostKeys). Ainsi, les mots de passe n’ont pas d’existence physique, sont cryptés dès la saisie, et ne peuvent donc être interceptés par un pourriciel. Mieux encore : avec NoPassConnect, il n’y a plus de mot de passe !
Avec OAuthSD, les mot de passe ne peuvent être interceptés au moment de leur saisie, ne circulent pas sur Internet, ne sont enregistrés nulle part !
L’engagement d’i-Tego à ne pas divulguer les données est un moyen pour les entreprises de se protéger de la concurrence. C’est aussi un avantage concurrentiel que les entreprises peuvent faire valoir auprès de leur clients et utilisateurs finaux.
Pour entrer rapidement dans le sujet, voyez :
SLI, SSO, SLO et SRA sont dans un bateau : OAuthSD,
Exemples complets du flux d’Autorisation,
OpenID Connect : Lier une application cliente au serveur OAuthSD.
Pour tester le serveur OAuthSD avec vos applications :
Inscrivez-vous comme auteur d’applications
Lier une application cliente au serveur OAuthSD