Le composant d'authentification JWT authentifie et autorise les requêtes à l'aide de jetons JSON Web Token (JWT). Il extrait les jetons des paramètres d'URL, des en-têtes ou des cookies des requêtes HTTP, puis vérifie si le jeton est autorisé à accéder à la ressource.
Catégorie de fonctionnalité
Authentification et autorisation
Descriptions des champs
ComponentConfig
|
Parameter |
Type |
Required |
Default |
Description |
|
Config |
Yes |
- |
Configuration de l'authentification JWT. |
JwtSpec
|
Parameter |
Type |
Required |
Default |
Description |
|
JwkConfig |
Yes |
- |
Configuration du JWK. |
|
|
JwtSources |
Yes |
- |
Méthode d'extraction du JWT. Une seule source d'extraction est prise en charge. |
JwkConfigSpec
|
Parameter |
Type |
Required |
Default |
Description |
|
Type |
No |
- |
Type de configuration JWK. |
|
|
RemoteJwks |
No |
- |
Configuration JWKS distante. |
JwkConfigType
|
Value |
Description |
|
Remote |
Récupération du JWK depuis un endpoint distant. |
RemoteJwksSpec
|
Parameter |
Type |
Required |
Default |
Description |
|
Url |
No |
- |
Adresse JWK distante. |
URI
Nom de domaine complet (FQDN) incluant le protocole, le nom d'hôte et le chemin d'accès. L'instance Application Load Balancer (ALB) accède à cette adresse via l'adresse IP de son vSwitch. Assurez-vous que l'adresse cible est accessible. Si l'adresse cible se trouve sur Internet, configurez une SNAT publique pour le vSwitch où réside l'instance ALB.
Exemple
http://example.com/jwt/pubkeys
La réponse JWK distante doit être conforme à la norme RFC 7518. Exemple de réponse :
{
"keys": [
{
"e": "Exponent of the public key, such as AQAB",
"kid": "Key ID",
"kty": "Family of the encryption algorithm, such as RSA. Required and case-sensitive",
"alg": "Specific encryption algorithm used, such as RS256. Required and case-sensitive",
"use": "Intended use of the key, such as sig for signing",
"n": "Modulus of the public key"
},
{
"kty": "oct",
"k": "yMsZ3vkBL4fEwJrNOPW6RztnYpdQ0UlVTum7H1qAehD",
"alg": "HS256"
}
]
}
JwtSourcesSpec
|
Parameter |
Type |
Required |
Default |
Description |
|
Headers |
No |
- |
Extraction du JWT depuis l'en-tête de la requête HTTP. |
|
|
Params |
String[] |
No |
- |
Extraction du JWT depuis le paramètre d'URL. |
|
Cookies |
String[] |
No |
- |
Extraction du JWT depuis le cookie. |
JwtHeaderSpec
|
Parameter |
Type |
Required |
Default |
Description |
|
Name |
String |
Yes |
Authorization |
Nom du champ dans l'en-tête de la requête. |
|
ValuePrefix |
String |
No |
Bearer |
Préfixe de la valeur d'en-tête correspondante. Le préfixe est supprimé avant l'extraction du jeton. |
Codes d'erreur
|
HTTP status code |
Error message |
Description |
|
401 |
Jwt is missing |
La requête ne fournit pas de JWT. |
|
401 |
Jwks remote fetch is failed |
Le délai d'attente de la requête vers l'adresse JWKS distante a été dépassé. |
|
401 |
Jwt verification fails |
Échec de la vérification de la charge utile du JWT. |
|
401 |
Jwt is expired |
Le jeton fourni dans la requête a expiré. |
|
401 |
Jwt signature is an invalid Base64url encoded |
Le jeton fourni dans la requête ne peut pas être décodé en Base64. |