Oauth et open id connect (oidc)

11
OAUTH et OpenID Connect (OIDC) Cas d'usages 18 Mai 2015 Cyril Grosjean CTO JANUA

Transcript of Oauth et open id connect (oidc)

Page 1: Oauth et open id connect (oidc)

OAUTH et OpenID Connect (OIDC) Cas d'usages

18 Mai 2015Cyril GrosjeanCTO JANUA

Page 2: Oauth et open id connect (oidc)

Généralités sur OAUTH 2 et OIDC● Permettre à une application cliente (Web, mobile,..) d'accéder à des

ressources appartenant à un utilisateur et détenues sur un serveur tiers, en demandant éventuellement le consentement de l'utilisateur, mais sans que celui-ci ait à nécessairement à donner à l'application cliente son mot de passe

● Permettre la révocation d'une application cliente (et des jetons déjà émis)

● Très récents : (OAuth v1: 2010, v2: 2012, OIDC: 2014)...

● … mais adoption rapide (mobilité, objets connectés, réseaux sociaux ...)

● Focus sur la facilité de déploiement et d'intégration, la mobilité ..

● .. et la sécurité : HTTPS, signature et/ou chiffrement (JWT), permissions (scope), anti-rejeu de jeton, révocation d'un client, d'un jeton, authentification du client, consentement de l'utilisateur, flux ne passant pas forcément par le navigateur, client publique/privé

Page 3: Oauth et open id connect (oidc)

OAUTH 2 : jeton de rafraichissement

Page 4: Oauth et open id connect (oidc)

OAUTH 2 : principe général accès à une ressource protégée

Page 5: Oauth et open id connect (oidc)

OAUTH 2 : jeton de rafraichissement

Page 6: Oauth et open id connect (oidc)

OAUTH 2 : exemples de requêtes

Autorisation par code

Autorisation par assertion SAML

Page 7: Oauth et open id connect (oidc)

OIDC : principe général

Page 8: Oauth et open id connect (oidc)

Différences entre OAUTH 1 et 2

● OAUTH 1.0 obsolète

● OAUTH 2.0 généralisé avec des différences d'implémentations d'où l'émergence d'une offre commerciale visant à simplifier l'interaction avec différents types de serveur OAUTH 2 : OAuth.io

● Pas d'expiration / expiration des jetons (mais possibilité de les renouveler)

● Pas de notion de scope / apparition du scope (ce à quoi un jeton donne droit)

● Signature des requêtes (problèmes d'inter-opérabilités) / utilisation d'HTTPS à la place

● Pas de serveur d'autorisation / serveur d'autorisation externe

Page 9: Oauth et open id connect (oidc)

Apports d'OIDC● En OIDC, le serveur cible (qui détient les ressources) est aussi celui qui délivre les jetons

● mode déconnecté: permet à une application de continuer à accéder àdes ressources d'une autre application alors que l'utilisateur s'est déconnecté

● nouveau flux (hybride) : compromis performances/sécurité (cf. diapo. suivante)

● nouveaux services (découverte, auto-enregistrement, session)

● un jeton en plus (id_token), qui plus est dans un format normalisé et sécurisé

● utilisation de JWT possible dans les requêtes, les réponses, ou à l'authentification du client: facilite le développement, augmente la sécurité

● possibilité de demander des champs (claims) particuliers plutôt que la totalité

● possibilité de distribuer les sources (distributed & aggregated claims)

● auto-génération de jeton

● authentification à l'initiative d'une application tierce

Page 10: Oauth et open id connect (oidc)

Cas d'usages et cinématiques OAUTH 2 et OIDC

● Autorisation par code : mode le + sûr mais 2 requêtes

● Autorisation implicite : mode optimisé pour le mobile, si l'on privilégie les performances (une seule requête et pas de jeton de rafraichissement)

● Autorisation par code et flux hybride (OIDC): compromis entre performanceset sécurité pour le mobile (1 ou 2 requêtes, jeton de rafraichissement et authentification du client possibles)

● Autorisation par fourniture au client de l'identifiant/mot de passe de l'utilisateur : si modes précédents ne conviennent pas et que le clientest "sûr" (exemple : OS). OAUTH2 uniquement (pas de sens en OIDC)

● Autorisation par fourniture de l'identifiant/mot de passe de l'application: cas où le client OAUTH2 doit accéder à son propre compte (scénario sans utilisateur)

● Cinématique à l'initiative d'une application tierce : permet d'avoir différents sens de navigation

Page 11: Oauth et open id connect (oidc)

Janua est une société de service et de consulting qui se propose de vous accompagner vers le monde de la gestion des identités, de la sécurité et des logiciels libres.

● ENL (Entreprise du Numérique Libre – SS2L) fondée en 2004 à Sophia

Antipolis (Alpes-Maritimes, région Paca)

● Nos domaines d’expertise : Gestion des Identités et Open Source.

● Nos prestations : audit, consulting, intégration, AMOA, MEP,

accompagnement, développement au forfait et support.

● Notre approche : les processus itératifs, les maquettes (POC) et l’utilisation de

méthodologies « agiles ».

http://www.janua.fr