Skip to content

Identity

JSON Web Token

  • https://fr.wikipedia.org/wiki/JSON_Web_Token
  • Propriétés:
    • Standard pour l'échange sécurisé de token entre différentes parties
    • Définit le format de données du jeton:
      • structure du jeton (header etc.)
      • propriétés (= Claims)
    • L'authenticité et l'intégrité des données est effectué par HMAC ou RSA
  • Fonctionnement:
    • Composition d'un jeton: header + payload + signature numérique
    • Signature numérique:
      • le header est chiffré en base64 url
      • le payload est chiffré en base64 url
      • header et payload encodés sont concaténés avec un point puis la signature est calculée
      • la signature est ajoutée à la fin du résultat, précédée d'un point

Kerberos

  • https://fr.wikipedia.org/wiki/Kerberos_(protocole)
  • Propriétés:
    • Protocole d'authentification
    • Repose sur un chiffrement symétrique + utilisation de tickets
  • Fonctionnement:
    • le client (C), a sa propre clé secrète Kc
    • le serveur (S), dispose aussi d'une clé secrète Ks
    • le service d'émission de tickets (TGS pour Ticket-Granting Service), a une clé secrète Ktgs et connaît la clé secrète Ks du serveur
    • le centre de distribution de clés (KDC pour Key Distribution Center), connaît les clés secrètes Kc et Ktgs
  • Similitude avec ce que pratiquent les ouvreurs et ouvreuses des théâtres et des cinémas :
    • au moment d'accéder à la séance de cinéma ou de spectacle, le client paye son ticket qui l'authentifie.
    • au point d'accès de la salle, l'ouvreur ou l'ouvreuse déchire le ticket en deux, conserve une partie et laisse l'autre au client.
    • en cas de contrôle, on vérifie si les deux morceaux du ticket se recollent.
    • la durée de vie du ticket est limitée à une séance.
  • Cas d'utilisation:
    • Windows 2000 et supérieur: Auth par défaut
    • OS X
    • NFS
    • OpenSSH

OAuth

  • https://fr.wikipedia.org/wiki/OAuth
  • Propriétés:
    • = protocole libre
    • Permet à une app d'obtenir une autorisation pour consommer une API pour le compte d'un user
      • N'est PAS un protocole d'authentification
      • Est un protocole de délégation d'autorisation
  • Fonctionnement:
    • Le Resource Owner (utilisateur) est capable d’accorder l’accès à la ressource pour une App Client.
    • L’Authorization Server occupe le rôle central au sein du protocole, il est chargé d’authentifier le Resource Owner et de délivrer son autorisation sous la forme d’un jeton appelé access token.
    • Le Resource Server quant à lui correspond au serveur où sont stockées les ressources protégées

OpenIDConnect

  • https://fr.wikipedia.org/wiki/OpenID_Connect
  • Propriétés:
    • Couche d'identification basée sur OAuth 2.0
    • Spécifie une interface RESTful au format JSON
    • Autorise les clients (App Client) à vérifier l'identité d'un utilisateur final (Resource Owner) en se basant sur l'authentification fournie par un Authorization Server.

Token Exchange

  • Permet à un service d'échanger un type de jeton contre un autre
  • Souvent utilisé dans les flux OAuth 2.0
  • Utilisé pour obtenir des informations supplémentaires, ex:
    • Obtenir des jetons avec des droits différents
    • Convertir un jeton d'authentification en un jeton d'autorisation
  • Séquence de fonctionnement: 1) Authentification initiale : L'utilisateur se connecte, s'authentifie et reçoit un jeton d'authentification. 2) Demande d'accès à des ressources : L'utilisateur utilise son jeton d'authentification pour demander un accès à des ressources protégées (des APIs, URLs etc) 3) Échange de jeton : Le service d'authentification valide le jeton d'authentification et émet un jeton d'autorisation pour les ressources demandées 4) Utilisation du jeton d'autorisation : L'utilisateur présente le jeton d'autorisation pour accéder aux ressources protégées.

SAML

  • https://fr.wikipedia.org/wiki/Security_assertion_markup_language
  • Propriétés:
    • Définit un protocole pour échanger des infos liées à la sécurité
    • Propose une auth unique = SSO:
      • un utilisateur peut naviguer sur plusieurs sites différents en ne s'authentifiant qu'une seule fois
      • sans pour autant que ces sites aient accès à des informations trop confidentielles
  • Fonctionnement:
    • Un utilisateur utilise un user agent (généralement un navigateur Web) pour demander une ressource Web protégée par un SAML service provider.
    • Le service, souhaitant connaître l'identité de l'utilisateur, envoie une demande d'authentification au SAML identity provider par l'intermédiaire de l'agent d'utilisateur.
    • Request la ressource cible dans le Service Provider
    • Redirect vers le Service SSO dans le Identity Provider
    • Request le Service SSO dans le Identity Provider
    • Réponse avec un formulaire XHTML
    • Request le Assertion Consumer Service dans le Service Provider
    • Redirect vers la ressource cible
    • Request la ressource cible dans le Service Provider encore une fois
    • Réponse avec la ressource demandée

SCIM

  • System for Cross-domain Identity Management
  • Utilisé pour la gestion de l'identité et la fourniture de données utilisateur entre différents systèmes et domaines
    • création / update / suppression intersystèmes
  • OSI Layer 7
  • Généralement utilisé dans un canal HTTP/S
  • Définis par les RFC:
    • 7643: System for Cross-domain Identity Management: Core Schema
    • 7644: System for Cross-domain Identity Management: Protocol