Serveur HTTP Apache Version 2.5

Apache > Serveur HTTP > Documentation > Version 2.5 > Modules

# Module Apache mod_autht_jwt

Description: | Authentification à base de jetons utilisant les jetons JWT
Statut: | Base
Identificateur de Module: | autht_jwt_module
Fichier Source: | mod_autht_jwt.c

### Sommaire

Ce module permet à des frontaux d'interprétation de jetons comme `mod_auth_bearer` d'authentifier les utilisateurs en vérifiant un jeton JWT comme décrit dans la RFC 7519.

Un jeton JWT est lu depuis l'en-tête Authorization avec un auth-scheme de Bearer.

Lorsqu'on utilise `mod_auth_bearer`, ce module est invoqué à l'aide de la directive `AuthBearerProvider` avec la valeur `jwt`.

Ce module peut aussi être utilisé isolément pour générer des jetons JWT destinés à être transmis vers un serveur ou service d'arrière-plan. Les demandes sont incluses dans un jeton qui est ensuite éventuellement signé, puis transmis à l'aide de l'en-tête Authorization en tant que jeton Bearer.

### Directives

### Traitement des bugs

- Journal des modifications de httpd
- Problèmes connus
- Signaler un bug

### Voir aussi

- `AuthBearerProvider`

## Directive AuthtJwtClaim ¶

Description: | Définit une demande avec le nom et l'expression donnés ou annule la définition d'une demande avec le nom donné
Syntaxe: | `AuthtJwtVerify [set|unset] name [value]`
Contexte: | répertoire, .htaccess
Surcharges autorisées: | AuthConfig
Statut: | Base
Module: | mod_autht_jwt

La directive `AuthtJwtClaim` permet d'ajouter et/ou supprimer des demandes dans les jetons transmis au serveur ou service d'arrière-plan.

Lorsqu'une demande est définie, sa valeur est le résultat d'une expression. L'expression peut inclure des paramètres issus d'un certificat digital ou le nom de l'utilisateur qui a été authentifié auprès d'Apache httpd.

### Exemple avec transmission de l'utilisateur distant

    <Location "/secure">
      AuthtJwtClaim set sub %{REMOTE_USER}
      AuthtJwtSign hs256 file "/www/conf/jwt.secret"
    </Location>

Lorsque la définition d'une demande est annulée, la demande précédemment définie est enlevée du jeton.

### Exemple avec annulation de la définition d'une demande

    AuthtJwtClaim set my-claim present
    <Location "/secure">
      AuthtJwtClaim set sub %{REMOTE_USER}
      AuthtJwtClaim unset my-claim
      AuthtJwtSign hs256 file "/www/conf/jwt.secret"
    </Location>

## Directive AuthtJwtDriver ¶

Description: | Définit le nom du pilote de chiffrement sous-jacent à utiliser
Syntaxe: | `AuthtJwtDriver name [param[=value]]`
Contexte: | configuration globale, serveur virtuel
Statut: | Base
Module: | mod_autht_jwt

La directive `AuthtJwtDriver` permet de spécifier le nom du pilote de chiffrement à utiliser pour la signature et la vérification. S'il n'est pas spécifier, sa valeur par défaut est celle du pilote recommandé compilée dans APR-util.

Suivez les instructions de la directive `SessionCryptoDriver` pour définir le pilote.

## Directive AuthtJwtSign ¶

Description: | L'algorithme de signature JWS et les mot de passe/clé pour signer un jeton JWT sortant
Syntaxe: | `AuthtJwtSign algorithm [type param]`
Contexte: | répertoire, .htaccess
Surcharges autorisées: | AuthConfig
Statut: | Base
Module: | mod_autht_jwt

La directive `AuthtJwtSign` permet de spécifier l'algorithme et le mot de passe utilisés pour signer les jetons de titulaire sortants transmis à un serveur ou service.

Si le type d'algorithme est none, le jeton ne sera pas protégé. A n'utiliser qu'avec les clients de confiance et lorsque le canal est protégé d'une autre manière comme l'authentification mutuelle TLS ou les sockets de domaine unix.

Définissez les demandes à envoyer dans le jeton en utilisant la directive `AuthtJwtClaim`. La demande sub est utilisée pour transmettre l'utilisateur distant.

### Exemple sans vérification

    <Location "/mutual-tls-secured">
      AuthtJwtClaim set sub %{REMOTE_USER}
      AuthtJwtSign none
    </Location>

Si le type d'algorithme est HS256, l'algorithme est défini à HMAC-SHA256, et le mot de passe est défini dans le fichier file spécifié comme troisième paramètre. Le contenu du jeton de titulaire est encore visible, et le canal doit donc encore être protégé contre les écoutes clandestines à l'aide de TLS.

### Exemple avec vérification

    <Location "/secure">
      AuthtJwtClaim set sub %{REMOTE_USER}
      AuthtJwtSign hs256 file "/www/conf/jwt.secret"
    </Location>

## Directive AuthtJwtVerify ¶

Description: | L'algorithme de signature JWS et les mot de passe/clé pour vérifier un jeton JWT entrant
Syntaxe: | `AuthtJwtVerify algorithm [type param]`
Contexte: | répertoire, .htaccess
Surcharges autorisées: | AuthConfig
Statut: | Base
Module: | mod_autht_jwt

La directive `AuthtJwtVerify` permet de spécifier l'algorithme et le mot de passe utilisés pour vérifier les jetons de titulaire entrants.

Si le type d'algorithme est none, le jeton ne sera pas protégé et sera accepté tel quel. A n'utiliser qu'avec les clients de confiance et lorsque le canal est protégé d'une autre manière comme l'authentification mutuelle TLS ou les sockets de domaine unix.

Si elle est présente, la demande sub est assignée à REMOTE_USER.

### Exemple sans vérification

    <Location "/mutual-tls-secured">
      AuthType bearer
      AuthName example-name
      AuthBearerProvider jwt
      AuthtJwtVerify none
      Require valid-user
    </Location>

Si le type d'algorithme est HS256, l'algorithme est défini à HMAC-SHA256, et le mot de passe est défini dans le fichier file spécifié comme troisième paramètre. Le contenu du jeton de titulaire est encore visible, et le canal doit donc encore être protégé contre les écoutes clandestines à l'aide de TLS.

Si la signature est vérifiée, la demande the sub, si elle est présente, est assignée à REMOTE_USER.

### Exemple avec vérification

    <Location "/secure">
      AuthType bearer
      AuthName example-name
      AuthBearerProvider jwt
      AuthtJwtVerify hs256 file "/www/conf/jwt.secret"
      Require valid-user
    </Location>