Passer au contenu principal
Traditionnellement, le flux implicite était utilisé par les applications qui ne pouvaient pas stocker des secrets de façon sécurisée. L’utilisation de ce flux n’est plus considérée comme une bonne pratique pour demander des  ; les nouvelles implémentations devraient utiliser le flux de code d’autorisation avec PKCE. Toutefois, lorsqu’il est utilisé avec le mode de réponse Form Post, le flux implicite offre un processus simplifié si l’application a seulement besoin d’un pour authentifier l’utilisateur ; dans ce cas, il est utilisé dans le cadre du flux hybride. Les ne seront plus retournés lors de l’utilisation du flux implicite pour l’authentification. De plus, le pipeline conforme à la norme OIDC a une incidence sur le flux implicite dans les domaines suivants : la requête d’authentification, la réponse d’authentification, la structure du jeton d’identité et la structure du jeton d’accès.

Requête d’authentification

Ancien

GET /authorize?
    response_type=token
    &scope=openid email favorite_color offline_access
    &client_id=123
    &state=af0ifjsldkj
    &redirect_uri=https://app.example.com
    &device=my-device-name
Le paramètre device n’est requis que si vous demandez un jeton d’actualisation en incluant le scope offline_access. Pour en savoir plus, consultez Jetons d’actualisation.

Conforme à la norme OIDC

GET /authorize?
    response_type=token id_token
    &scope=openid email
    &client_id=123
    &state=af0ifjsldkj
    &nonce=jxdlsjfi0fa
    &redirect_uri=https://app.example.com
    &audience=https://api.example.com
  • response_type indique que nous voulons recevoir à la fois un jeton d’accès et un jeton d’identité.
  • Les jetons d’actualisation ne sont pas autorisés dans le flux implicite. Utilisez plutôt prompt=none. Pour en savoir plus, consultez Configure Silent Authentication.
  • favorite_color n’est plus un scope valide.
  • audience est facultatif.
  • nonce doit être une chaîne aléatoire cryptographiquement sûre. Pour en savoir plus, consultez Mitigate Replay Attacks When Using the Implicit Flow.

Réponse d’authentification

ancien

HTTP/1.1 302 Found
Location: https://app.example.com/#
    access_token=SlAV32hkKG
    &expires_in=86400
    &state=af0ifjsldk
    &id_token=eyJ...
    &refresh_token=8xLOxBtZp8
    &token_type=Bearer
  • Le jeton d’accès renvoyé est valide pour appeler le point de terminaison /userinfo.
  • Un jeton d’actualisation n’est renvoyé que si un paramètre device a été transmis et si le scope offline_access a été demandé.

Conforme à la norme OIDC

HTTP/1.1 302 Found
Location: https://app.example.com/#
    access_token=eyJ...
    &expires_in=86400
    &state=af0ifjsldk
    &id_token=eyJ...
    &token_type=Bearer
  • Le jeton d’accès renvoyé permet d’appeler le point de terminaison /userinfo (à condition que l’API spécifiée par le paramètre audience utilise RS256 comme algorithme de signature) et, au besoin, le spécifié par le paramètre audience.
  • Si vous utilisez response_type=id_token, Auth0 renverra uniquement un jeton d’identité. Les jetons d’actualisation ne sont pas autorisés dans le flux implicite. Utilisez plutôt prompt=none.

Structure du jeton d’identité

Ancien

Conforme à la norme OIDC

  • La revendication favorite_color doit être associée à un espace de noms et ajoutée au moyen d’une Rule. Pour en savoir plus, consultez Créer des revendications personnalisées avec espace de noms.
  • Après avoir validé le jeton d’identité, l’application doit valider le afin d’atténuer les attaques par rejeu.

Structure du jeton d’accès (facultative)

Mode ancien

HTTP
SlAV32hkKG
Le jeton d’accès renvoyé est opaque et n’est valide que pour appeler le point de terminaison /userinfo.

Conforme à la norme OIDC

  • Le jeton d’accès renvoyé est un valide pour appeler le point de terminaison /userinfo (à condition que l’API spécifiée par le paramètre audience utilise RS256 comme algorithme de signature), ainsi que le serveur de ressources spécifié par le paramètre audience.
  • Un jeton d’accès opaque peut tout de même être renvoyé si /userinfo est la seule spécifiée.

En savoir plus