Connexion

Comment Auth0 applique les normes du secteur de l'identité

Et pourquoi vous devriez toujours utiliser les normes industrielles dans vos applis

how-auth0-uses-identity-industry-standards

Quelles sont les normes du secteur de l'identité ?

Lorsque les ordinateurs étaient pour la plupart des systèmes autonomes, leurs codes d'accès fonctionnaient en silo isolé, asservis à chaque équipement, pour assurer l'authentification (vérification que les personnes sont bien celles qu'elles prétendent être) et l'autorisation (permettant d'accéder à des informations spécifiques), ainsi que la protection des bases de données contenant les informations personnelles des utilisateurs. Même aux premiers jours du Web, les sites géraient leur sécurité en toute indépendance, avec des codes personnalisés et propriétaires.

Aujourd'hui, vous utilisez les mêmes données de connexion sur différentes applis et sites, qu'il s'agisse d'identifiants de réseaux sociaux ou d'identifiants d'entreprise personnalisés. Cet avantage dépend totalement de l'application des normes de l'identité, maintenant généralisées sur le Web.

Combinant des spécifications et des protocoles ouverts, les normes industrielles de l'identité définissent des instructions explicites pour concevoir des systèmes d'authentification et d'autorisation. Elles permettent ainsi de gérer les identités, de transférer des données personnelles en toute sécurité et de décider qui peut accéder aux applications et aux données, si bien que plusieurs parties peuvent facilement bénéficier de niveaux d'interopérabilité efficaces.

Les avantages des normes

  • Confiance et sécurité
    • Les normes d'authentification renforcent la sécurité et réduisent les risques. En effet, il suffit que l'utilisateur soit identifié et authentifié une seule fois par un fournisseur d'identifiants, et ses informations d'identité avec leur validation pourront être réutilisées dans plusieurs systèmes. Les normes d'autorisation renforcent la conformité de la confidentialité, puisque la quantité d'informations partagées est facilement contrôlable.
  • Performances et coûts
    • Grâce aux normes, vos applis ne dépendent pas d'un code d'authentification back-end personnalisé, ni d'une base de données utilisateurs hébergée en interne. Une application peut être développée en interne et déployée à l'extérieur de l'organisation, sans tenir compte de sa connexion au code et au serveur back-end d'origine. Les normes d'identité réduisent les coûts, car elles éliminent la nécessité de dimensionner des solutions uniques ou propriétaires. Différentes méthodes d'authentification et d'autorisation plus robustes peuvent être automatiquement mises à jour sans actualiser d'importants volumes de code.
  • Satisfaction client
    • L'expérience utilisateur a bénéficié de progrès considérables. Les utilisateurs n'ont plus besoin de créer de nouveaux comptes pour chaque nouvelle application. Ils ont la certitude que leurs données sont stockées en toute sécurité par le fournisseur d'identifiants d'origine. La quantité de mots de passe et d'informations de connexion dont ils ont besoin a largement diminué, tout en leur apportant une meilleure protection sur l'ensemble de leurs comptes.

Les normes industrielles de l'identité intégrées par Auth0

Auth0 a intégré dans ses systèmes les normes industrielles de l'identité suivantes.

  • OAuth 1 — Dans la norme originale, les codes secrets partagés entre un serveur et l'utilisateur final servaient à calculer les signatures pour vérifier l'authenticité des demandes de l'API. Cependant, l'implémentation des signatures posait certaines difficultés, finalement résolues par la mise à niveau OAuth 2, qui a supprimé la nécessité des signatures, pour s'appuyer sur le protocole SSL.
  • OAuth 2 — Cette norme d'autorisation fournit un accès sécurisé aux ressources de l'utilisateur final. Elle définit un processus qui permet à des tiers d'accéder à des ressources, tout en évitant à l'utilisateur de partager ses informations d'identification. Elle est généralement utilisée par les connexions à des applications qui utilisent des comptes Google, Twitter et Facebook.
  • Normes d'authentification centrées sur le consommateur
    • Open ID Connect — Positionnée sur OAuth 2, cette couche d'identité permet de vérifier facilement l'identité de l'utilisateur. Elle peut aussi obtenir des informations de base sur son profil en contactant le fournisseur d'identifiants.
      En outre, nous avons obtenu la Certification OpenID pour garantir la conformité de la mise en œuvre d'Auth0.
    • JSON Web Tokens — Cette norme ouverte définit une méthode compacte et autonome pour assurer la sécurité des transferts entre tiers d'informations encodées sous forme d'objet JSON. La signature numérique de ces informations vérifiables garantit leur fiabilité. Elles peuvent être utilisées pour transmettre l'identité des utilisateurs authentifiés entre le fournisseur d'identifiants et le service demandant l'authentification. Elles peuvent être authentifiées et chiffrées.
  • Normes d'authentification d'entreprise
    • Security Assertion Markup Language (SAML) — Ce format de données standard ouvert, basé sur XML, permet aux entreprises de communiquer des données d'authentification et d'autorisation individuelles à des partenaires et à des applications d'entreprise, pour que leurs employés puissent les utiliser. SAML a pour avantage d'assurer la neutralité de la plateforme, de réduire les coûts et de transférer les risques liés à la gestion des identités.
    • WS-Federation — Développée par Microsoft et largement utilisée par ses applications, cette norme définit les modalités de transport des jetons de sécurité entre différentes entités pour échanger des données d'identité et d'autorisation.

Auth0 et les normes industrielles de l'identité

Toutes ces normes sont disponibles dans Auth0. Leur implémentation ne nécessite que peu ou pas de recodage, lorsque vous passez d'un protocole ou d'un fournisseur d'identifiants à un autre.

Normalisation à tous les niveaux de votre organisation

Pour commencer à utiliser les normes, l'approche la plus simple constitue à mettre en œuvre le protocole de connexion Open ID Connect / OAuth 2 avec JWT comme jeton d'accès. Vos utilisateurs ou vos employés pourront facilement se connecter avec n'importe quel fournisseur d'identité sociale.

Authentification avec Auth0

Auth0 propose une mise en œuvre en six étapes :

  1. Configuration de l'URL Callback dans Auth0. Vous ajoutez les informations dans la page « Application Settings » du tableau de bord :
    http://www.yoursite.com/callback
  2. Intégration d'Auth0Lock
    <script src='https://cdn2.auth0.com/js/lock-8.2.min.js'></script>
    <script type='text/javascript'>
        var lock = new Auth0Lock('4CvZhjoDtdwciSPYLaby6EdJA6eBBRsi', 'username.auth0.com');
        function signin() {
            lock.show({
                callbackURL: 'http://www.yoursite.com/callback',
                responseType: 'code',
                authParams: {
                    scope: 'openid profile'
                }
            });
         }
    </script>
    <button onclick='window.signin();'>Login</button>
  3. Après l'authentification réussie de l'utilisateur, une commande GET appelle votre appli sur ce point terminal
    GET http://www.yoursite.com/callback?code=AUTHORIZATION_CODE&state=VALUE_THAT_SURVIVES_REDIRECTS
  4. Votre appli doit envoyer le code au serveur Auth0 avec une commande POST
    POST https://username.auth0.com/oauth/token
    Content-type: application/x-www-form-urlencoded
    client_id=4CvZhjoDtdwciSPYLaby6EdJA6eBBRsi
    &redirect_uri=http://www.yoursite.com/callback
    &client_secret=4DxvHUwrabq6EQNe061PoFDeC5Ic5DamI2Eropuz-MLvi730WJijwZT6Zd6EM_nK
    &code=AUTHORIZATION_CODE
    &grant_type=authorization_code
  5. La réponse du serveur est semblable à ceci :
    { 'access_token':'2YotnF..........1zCsicMWpAA', 'id_token': '......Json Web Token......', 'token_type': 'bearer' }
  6. Pour terminer, vous pouvez obtenir le profil utilisateur requis avec la ligne :
    GET https://username.auth0.com/userinfo/?access_token=2YotnF..........1zCsicMWpAA

Cela permettra d'authentifier vos utilisateurs avec leur fournisseur d'identifiants Open ID Connect, et de renvoyer leur profil d'utilisateur normalisé à votre appli.

Implémenter le protocole SAML dans la SSO pour monter en gamme votre activité SaaS

La mise en œuvre d'une SSO d'entreprise est l'une des méthodes les plus simples pour que votre entreprise SaaS monte en gamme et améliore ses résultats. Si vous voulez qu'une entreprise cliente potentielle choisisse votre SaaS, vous devrez très probablement lui permettre d'autoriser ses employés à se connecter à votre application avec leurs coordonnées professionnelles.

Pour implémenter l'authentification SAML dans Auth0, il suffit d'ajouter quelques lignes de code et les données de votre fournisseur d'identifiants SAML dans le tableau de bord. Les informations nécessaires sont les suivantes :

  • Adresse URL de la connexion SSO
  • Adresse URL de la déconnexion SSO
  • Certificat de clé publique X509

Ces informations peuvent être enregistrées sur la page de configuration « SAML » sous « Connexions Entreprise » :

Configuration SAML

Pour l'utiliser avec Lock, vous ajoutez quelques lignes de code pour rediriger les fonctions Connexion et Déconnexion sur votre fournisseur d'identifiants SAML avec une implémentation Express, en incluant passport.js :

var express = require('express'); 
var router = express.Router(); 
var passport = require('passport');  
  
/* GET users listing. */  
router.get('/', function(req, res, next) {  
    res.send(req.user); 
});  
  
router.get('/authenticate', 
    passport.authenticate('auth0', { 
        failureRedirect: '/error'  
    }), 
    function(req, res) { 
        if (!req.user) { 
            throw new Error('user null');  
        } 
        res.redirect('/'); 
    });  
  
router.get('/logout', function(req, res) {  
    req.logout(); 
    res.redirect('/'); 
}) 
 
module.exports = router;

Pour en savoir plus sur cette implémentation, regardez notre vidéo sur la mise en œuvre du protocole SAML.

Inscription gratuite

Commencez à construire et à sécuriser vos applis dès aujourd'hui avec la plateforme d'identité Auth0.

3D login box