Pour utiliser les fonctionnalités de l’identité très réglementée (HRI), vous devez disposer d’un plan Enterprise avec le module complémentaire Identité très réglementée. Consultez Tarification Auth0 pour plus de détails.
Prérequis
Pour utiliser JAR, vous devez d’abord générer une paire de clés RSA. Ensuite, enregistrez la clé publique auprès d’Auth0 comme expliqué dans la section Configurer les demandes d’autorisation sécurisées par JWT. Pendant le flux de code d’autorisation, l’application cliente prend les paramètres qu’elle souhaite envoyer aux points de terminaison/authorize
ou /oauth/par
et les enveloppe dans un jeton Web JSON (JWT), qu’elle signe ensuite en utilisant la clé privée.
Le serveur d’autorisation vérifie la signature avec la clé publique de votre application. Si la signature est valide, le serveur d’autorisation extrait les paramètres de la demande du JAR et traite la demande comme d’habitude. Par conséquent, les valeurs des paramètres sont garanties comme provenant d’une source connue et ne peuvent pas être modifiées ou consultées par des intermédiaires
Générer la requête JAR
Pour générer une requête JAR, vous devez d’abord créer un jeton Web JSON (JWT). Utilisez la bibliothèque Auth0 JWT pour vous aider à générer un dans votre langue préférée.En-tête
Pour une requête JAR, l’en-tête JWT doit contenir les champs suivants :alg
: L’algorithme utilisé pour signer le JWT. Doit être RS256, RS384 ou PS256.typ
: Le type de JWT. Il doit êtrejwt
ouoauth-authz-req+jwt
.
kid
qui identifie la clé utilisée pour signer le JWT. Si la valeur kid
est présente, Auth0 recherchera une clé publique enregistrée lors de la configuration du JAR et dont l’ID correspond à la clé, et utilisera cette clé pour vérifier la signature du JWT.
Charge utile
La charge utile JWT doit contenir les demandes suivantes :iss
: doit contenir leclient_id
de votre application.aud
: doit être le domaine de votre locataire, avec le protocole et une barre oblique de fin. Par exemple,https://your_domain.auth0.com/
/authorize
. Par exemple :
client_id
: doit également contenir leclient_id
de votre application.response_type
: indique à Auth0 le flux 2.0 que vous souhaitez exécuter. Utilisezcode
pour le flux d’octroi de code d’autorisation.
audience
, scope
, state
, redirect_uri
, entre autres.
De plus, le JWT peut contenir les demandes facultatives suivantes :
iat
: doit être une date numérique.nbf
: doit être une date numérique, représentant une période antérieure.exp
: doit être une date numérique, représentant une période future.jti
: doit être une chaîne de caractères ne dépassant pas 64 octets.
Exemple de génération de JWT
L’exemple de code JavaScript suivant montre comment générer et signer un JWT en utilisant JavaScript bibliothèque jsonwebtoken. Il produit le JWT généré dans la console :Appeler le point de terminaison d’autorisation
Pour appeler le point de terminaison/authorize
à l’aide de votre JWT signé, ouvrez une nouvelle fenêtre de navigateur. Transmettez votre ID client comme paramètre client_id
et le JWT signé et encodé en URL comme paramètre request
.