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?

/

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 permission offline_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ètre audience utilise RS256 comme algorithme de signature) et éventuellement le serveur de ressources spécifié par le paramètre audience.

  • 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. Utilisez prompt=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 utilise RS256 comme algorithme de signature) ainsi que le serveur de ressources indiqué par le paramètre audience.

  • Un jeton d’accès opaque peut toujours être retourné /userinfo est la seule audience spécifiée.

En savoir plus