Flux implicite avec OIDC
Traditionnellement, le Flux implicite était utilisé par les applications qui étaient incapables de stocker des secrets en toute sécurité. L’utilisation de ce flux n’est plus considérée comme meilleure pratique pour la demande de jetons d’accès; 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 flux de travail simplifié si l’application n’a besoin que d’un jeton d’ID pour effectuer l’authentification des utilisateurs; dans ces cas, il serait utilisé dans le cadre du Flux hybride.
Les jetons d’actualisation ne seront plus renvoyés lors de l’utilisation du flux implicite pour l’authentification.
En outre, le pipeline Conforme à l’OIDC affecte le flux implicite dans les domaines suivants : demande d’authentification, réponse d’authentification, structure de jeton d’ID et structure de jeton d’accès.
Demande d’authentification
Héritage
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
Was this helpful?
Le paramètre device
n’est nécessaire que si vous demandez un jeton d’actualisation en passant par la permission offline_access
. Pour en savoir plus, veuillez consulter Jetons d’actualisation.
Conforme à 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
Was this helpful?
response_type
indique que nous voulons recevoir à la fois un jeton d’accès et un jeton d’ID.Les jetons d’actualisation ne sont pas autorisés dans l’autorisation implicite. Utilisez
prompt=none
à la place. Pour en savoir plus, consultez Configurer Authentification Silencieuse.favorite_color
n’est plus une permission valide.audience
est facultative.nonce
doit être une chaîne aléatoire cryptographiquement sécurisée. Pour en savoir plus, consultez Atténuer les attaques par réinsertion lors de l'utilisation du flux implicite.
Réponse d’authentification
Héritage
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
Was this helpful?
Le jeton d’accès retourné est valide pour appeler le point de terminaison
/userinfo
.Un jeton d’actualisation sera retourné uniquement si un paramètre
device
a été passé et que la permissionoffline_access
a été demandée.
Conforme à 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
Was this helpful?
Le jeton d’accès retourné est valide pour appeler le point de terminaison
/userinfo
(à condition que l’API spécifiée par le paramètreaudience
utiliseRS256
comme algorithme de signature) et éventuellement le serveur de ressources spécifié par le paramètreaudience
.Si vous utilisez
response_type=id_token
, Auth0 ne retournera qu’un jeton d’ID. Les jetons d’actualisation ne sont pas autorisés dans l’autorisation implicite. Utilisezprompt=none
à la place.
Structure des jetons d’ID
Héritage
{
"sub": "auth0|alice",
"iss": "https://{yourDomain}/",
"aud": "123",
"exp": 1482809609,
"iat": 1482773609,
"email": "alice@example.com",
"email_verified": true,
"favorite_color": "blue"
}
Was this helpful?
Conforme à OIDC
{
"sub": "auth0|alice",
"iss": "https://{yourDomain}/",
"aud": "123",
"exp": 1482809609,
"iat": 1482773609,
"email": "alice@example.com",
"email_verified": true,
"https://app.example.com/favorite_color": "blue",
"nonce": "jxdlsjfi0fa"
}
Was this helpful?
La demande
favorite_color
doit être associée à un espace de noms et ajoutée au moyen d’une règle. Pour en savoir plus, consultez Créer des demandes personnalisées à espace de noms.Après avoir validé le jeton d’ID, l’application doit valider le nombre aléatoire pour atténuer les attaques par réinsertion.
Structure du jeton d’accès (facultatif)
Héritage
SlAV32hkKG
Was this helpful?
Le jeton d'accès renvoyé est opaque et n'est valide que pour appeler le point de terminaison /userinfo
.
Conforme à OIDC
{
"sub": "auth0|alice",
"iss": "https://{yourDomain}/",
"aud": [
"https://api.example.com",
"https://{yourDomain}/userinfo"
],
"azp": "123",
"exp": 1482816809,
"iat": 1482809609,
"scope": "openid email"
}
Was this helpful?
Le jeton d’accès retourné est un JWT valide pour appeler le point de terminaison
/userinfo
(à condition que l’API indiquée par le paramètre
audience
utiliseRS256
comme algorithme de signature) ainsi que le serveur de ressources indiqué par le paramètreaudience
.Un jeton d’accès opaque peut toujours être retourné
/userinfo
est la seule audience spécifiée.