Le Guide API ReST | Marmicode
  • Le Guide API ReST par Marmicode
  • API ReST
    • L'Ecosystème Moderne
    • Le Besoin
    • Re.S.T. : REpresentational State Transfer
    • Les 5 règles et ½ de l’API ReST
    • Le Modèle de Maturité de Richardson
    • H.A.T.E.O.A.S. & Resource Linking
    • Avis Subjectif sur H.A.T.E.O.A.S. et le Semantic Web
    • ReST over HTTP
    • HTTP & CRUD
    • ReSTful donc Stateless
    • Pragmatisme, Idéologie et ReSTafarians
  • Conventions & Bonnes Pratiques
    • Nommage
    • Base URL
    • Media Type
    • Versioning
    • Propriété “id”
    • Polymorphisme
    • Datetime
    • Ressource d'Association
    • Pourquoi Appliquer ces Bonnes Pratiques
    • Zalando ReSTful API Guidelines
  • Les Outils
    • Swagger
    • OpenAPI Visual Editors
    • IDE Plugins
    • Postman
    • Insomnia
    • Fake & Sandbox
    • JSON Generator
    • Pact
  • Sécurité des APIs ReST
    • OWASP Top 10
    • Authentification et Session Management
    • Autorisation et Gestion des Permissions
    • Validation, Canonicalization, Escaping & Sanitization
    • Cookies are EVIL
    • C.O.R.S.
    • C.S.R.F.
    • C.S.R.F. & Media Type
    • C.S.R.F. Mitigation
    • C.S.R.F. & "Resource Linking"
    • J.O.S.E.
      • J.W.K.
      • J.W.S.
      • J.W.E.
    • J.W.T.
      • Description et Fonctionnement de JWT
      • Usages et Avantages
      • Utilisation de JWT pour l’Authentification
      • JWT, Authentification, Sessions et Risques Sécurité
      • Recommandations JWT
    • OAuth 2
      • OAuth 2 Roles
      • OAuth 2 Abstract Flow
      • OAuth 2 Authorization Code Flow
      • OAuth 2 Implicit Flow
      • OAuth 2 Resource Owner Password Credentials Flow
      • OAuth 2 Client Credentials
      • OAuth 2 Registration
      • OAuth 2 Risques & Recommandations
      • OAuth 2 Substitution Attack
    • OpenID Connect
      • Terminologie
      • Quoi de Neuf ?
      • OpenID Connect Flows
      • Que Faire ?
  • Autres Spécifications
    • JSON API
    • H.A.L.
    • JSON LD
    • Les Autres Initiatives
    • So What?
  • Quelques Liens & Ressources
  • Stay Tuned
    • 📝Blog
    • 🐦Twitter
    • 📬Newsletter
Propulsé par GitBook
Sur cette page
  1. Sécurité des APIs ReST
  2. OAuth 2

OAuth 2 Implicit Flow

PrécédentOAuth 2 Authorization Code FlowSuivantOAuth 2 Resource Owner Password Credentials Flow

Dernière mise à jour il y a 5 ans

L'Implicit Flow est un mode dégradé de l'.

Il est inévitable quand le Client est public (non confidentiel).

1. Le Client redirige le Resource Owner vers l'Authorization Server :

https://accounts.google.com/o/oauth2/v2/auth?
response_type=token
&client_id=CLIENT_ID
&redirect_uri=CALLBACK_URL
&scope=read
&state=...

2. Le Resource Owner confirme ou rejette les autorisations d’accès demandées sur l’interface proposée par l'Authorization Server.

3. L'Authorization Server redirige le Resource Owner vers le Client qui reçoit alors directement l'Access Token dans le fragment de l’URL.

https://cal-tracker.wishtack.io/oauth/callback#
access_token=ACCESS_TOKEN
&token_type=bearer
&scope=...
&state=...

Le fragment est utilisé pour éviter de transmettre l'Access Token au service de "hosting" de l'application.

4. Le User-Agent suit donc la redirection mais le fragment ne quitte pas le Device.

5. Le Client exécute alors le code permettant d’extraire l'Access Token du fragment.

Le Resource Owner détient l'Access Token et peut donc court-circuiter le Client pour communiquer directement avec le Resource Server.

Autrement dit, en cas de man-in-the-middle, un attaquant peut demander des autorisations au nom du Client et utiliser librement l'Access Token pour communiquer avec le Resource Server.

Certains “User-Agents” coquins ont tendance à perdre les fragments

C’est pour ces raisons entre autres qu’il est recommandé d’utiliser l'.

https://bugs.webkit.org/show_bug.cgi?id=24175
Authorization Code Flow
Authorization Code Flow
OAuth 2 Implicit Flow