jwt-validate

Utilisez la stratégie de sécurité Valider JWT pour activer la validation d'un jeton Web JSON (JWT) dans une demande avant d'autoriser l'accès aux API.

Prise en charge des passerelles

Tableau 1. Tableau des passerelles prenant en charge cette stratégie, ainsi que la version de stratégie correspondante
Passerelle Version de la stratégie
DataPower® Gateway (v5 compatible) 1.0.0
DataPower API Gateway 2.0.0

Cette rubrique décrit comment configurer la stratégie dans votre source OpenAPI . Pour plus de détails sur la configuration de la stratégie dans l'interface utilisateur de l'assemblage, voir Validation du jeton JWT.

Remarque :
  • Si le message d'origine a été signé avec une clé secrète partagée, l'objet cryptographique spécifié doit également être une clé secrète partagée.
  • Si le message d'origine a été signé avec une clé privée, l'objet cryptographique spécifié doit être un certificat cryptographique (certificat public).
  • Les éléments cryptographiques peuvent être fournis par l'intermédiaire d'un JWK (JSON Web Key).
  • Si un paramètre d'en-tête JWK est inclus dans l'en-tête du JWT, ce paramètre doit correspondre au JWK ou à l'objet cryptographique spécifié dans la stratégie, faute de quoi la validation du JWT échouera.
  • Si un objet cryptographique et un JWK sont tous deux spécifiés, l'objet cryptographique est utilisé pour déchiffrer ou vérifier le JWT.
  • L'action de validation JWT sur le DataPower API Gateway peut vérifier un JWT à l'aide d'un JWK unique ou d'un ensemble JWK.

A propos de

La stratégie jwt-validate possède la structure suivante:
- jwt-validate:
  version: version
  title: title
  description: description
  jwt: json_web_token
  output-claims: output_full_set_of_jwt_claims
  iss-claim: issuer_claim
  aud-claim: audience_claim
  jwe-crypto: decrypt_crypto_object
  jwe-jwk: decrypt_crypto_jwk_variable_name
  jws-crypto: verify_crypto_object
  jws-jwk: verify_crypto_jwk_variable_name

Propriétés

Le tableau suivant décrit les propriétés de la stratégie :
Tableau 2. Valider les propriétés de la stratégie JWT
Propriété Obligatoire Descriptif Type de données
version Oui Numéro de version de la stratégie chaîne
title Oui Titre de la stratégie. chaîne
description Non Description de la stratégie. chaîne
jwt Oui Variable contextuelle ou d'exécution qui contient le JWT à valider.

La valeur par défaut est request.headers.authorization. Toutefois, si cette propriété n'est pas définie, la stratégie recherche le JWT dans l'emplacement request.headers.authorization par défaut.

Remarque: Le format de l'en-tête d'autorisation doit être le suivant:
"Authorization: Bearer jwt-token"
, jeton-jwt correspondant au JWT codé.
chaîne
output-claims Oui Variable d'exécution à laquelle l'intégralité des réclamations contenues dans le JWT sont affectées.

La valeur par défaut est decoded.claims.

chaîne
iss-claim Non Perl Compatible Regular Expressions (PCRE) à utiliser pour valider la réclamation de l'émetteur (iss). chaîne
aud-claim Non Expression PCRE à utiliser pour valider la réclamation du public (aud). chaîne
jwe-crypto Non Objet cryptographique (clé ou certificat partagé(e)) à utiliser pour décoder la réclamation. Un JWK et un objet cryptographique représentent deux moyens valides de fournir les données cryptographiques nécessaires pour déchiffrer le JWT. Toutefois, si les deux types de données sont spécifiés, seul l'objet cryptographique est utilisé. chaîne
jwe-jwk Non Variable d'exécution qui contient le JWK à utiliser pour déchiffrer le JWT. Un JWK et un objet cryptographique représentent deux moyens valides de fournir les données cryptographiques nécessaires pour déchiffrer le JWT. Toutefois, si les deux types de données sont spécifiés, seul l'objet cryptographique est utilisé. chaîne
jws-crypto Non Objet cryptographique (clé ou certificat partagé(e)) à utiliser pour vérifier la signature. Un JWK, ou un ensemble JWK, et un objet cryptographique sont des moyens valides de fournir les données cryptographiques nécessaires pour vérifier le JWT. Toutefois, si les deux types de données sont spécifiés, seul l'objet cryptographique est utilisé. chaîne
jws-jwk Non Variable d'exécution qui contient le JWK, ou un ensemble JWK, à utiliser pour vérifier la signature. Un JWK, ou un ensemble JWK, et un objet cryptographique sont des moyens valides de fournir les données cryptographiques nécessaires pour vérifier le JWT. Toutefois, si les deux types de données sont spécifiés, seul l'objet cryptographique est utilisé. chaîne

Exemple

Voici un exemple de règle jwt-validate :
- jwt-validate:
    version: 1.0.0
    title: jwt-validate
    jwt: request.headers.authorization
    output-claims: decoded.claims
    iss-claim: "'^data.*'"
    aud-claim: "'^id.*'"
    jwe-crypto: jweCryptoObjectName
    jwe-jwk: jwe.jwk
    jws-crypto: jwsCryptoObjectName
    jws-jwk: jws.jwk

Pour plus d'informations sur l'utilisation d'une stratégie de sécurité jwt-validate , voir Validate JWT dans la section des stratégies intégrées.