Title: AH JWT Auth
Author: andrewheberle
Published: <strong>22 april 2021</strong>
Last modified: 17 juli 2026

---

Plugins zoeken

![](https://ps.w.org/ah-jwt-auth/assets/icon.svg?rev=2527062)

# AH JWT Auth

 Door [andrewheberle](https://profiles.wordpress.org/andrewheberle/)

[Download](https://downloads.wordpress.org/plugin/ah-jwt-auth.2.4.0.zip)

 * [Details](https://nl.wordpress.org/plugins/ah-jwt-auth/#description)
 * [Beoordelingen](https://nl.wordpress.org/plugins/ah-jwt-auth/#reviews)
 * [Ontwikkeling](https://nl.wordpress.org/plugins/ah-jwt-auth/#developers)

 [Ondersteuning](https://wordpress.org/support/plugin/ah-jwt-auth/)

## Beschrijving

This plugin allows sign in to WordPress using a JSON Web Token (JWT) contained
 
in a HTTP Header that is added by a reverse proxy that sits in front of your WordPress
deployment.

Authentication and optionally role assignment is handled by claims contained in

the JWT.

If configured, the plugin also validates the JWT `aud` and `iss` claims against

the expected application audience and JWT issuer values.

Verification of the JWT is handled by either:

 * a shared secret for HS256 (as per RFC 7518 this must be at least 256-bits in
   
   size)
 * a PEM encoded public key for RS256
 * retrieving a JSON Web Key Set (JWKS) from a configured URL (also for RS256)

During the login process if the user does not exist an account will be created
 
with a matching role from the JWT, unless automatic user creation has been disabled
in the plugin settings.

If the JWT did not contain a role claim then user is created with the role set
 
in the plugin settings (by default this is the subscriber role).

Automatic user creation is enabled by default for backwards compatibility. It
 can
be disabled when user provisioning should remain manual.

## Schermafbeeldingen

[⌊This example shows a configuration with a WordPress install behind
Cloudflare 
Access for SSO via JWT⌉⌊This example shows a configuration with a WordPress install
behind
Cloudflare Access for SSO via JWT⌉[

This example shows a configuration with a WordPress install behind Cloudflare Access
for SSO via JWT

## FAQ

### What header is the JWT retrieved from?

By default the plugin looks for the JWT in the `Authorization` header as follows:

    ```
    Authorization: Bearer <JWT Here>
    ```

However the token may be retrieved from a configurable HTTP header, for example 
to integrate with Cloudflare Access, which was the original target for this plugin,
you would configure the use of the `Cf-Access-Jwt-Assertion` header.

### What claims should the JWT contain?

The JWT must contain at least an `email` claim and may also contain a `role` claim:

    ```
    {
        "iss": "example.com",
        "aud": "example-audience-id",
        "email": "admin@example.com",
        "iat": 1356999524,
        "nbf": 1357000000,
        "role": "admin"
    }
    ```

The `aud` and `iss` claims are only required when a JWT Audience and/or Issuer value
has been configured in the plugin settings, however as they are standard JWT claims
it is recommended to set these options to verify those claims exist and are valid.

### What signature algorithms are supported to verify the JWT?

Currently only the HS256 and RS256 algorithms are supported.

## Beoordelingen

Er zijn geen beoordelingen voor deze plugin.

## Bijdragers & ontwikkelaars

“AH JWT Auth” is open source software. De volgende personen hebben bijgedragen aan
deze plugin.

Bijdragers

 *   [ andrewheberle ](https://profiles.wordpress.org/andrewheberle/)

[Vertaal “AH JWT Auth” in je eigen taal.](https://translate.wordpress.org/projects/wp-plugins/ah-jwt-auth)

### Interesse in ontwikkeling?

[Bekijk de code](https://plugins.trac.wordpress.org/browser/ah-jwt-auth/), haal 
de [SVN repository](https://plugins.svn.wordpress.org/ah-jwt-auth/) op, of abonneer
je op het [ontwikkellog](https://plugins.trac.wordpress.org/log/ah-jwt-auth/) via
[RSS](https://plugins.trac.wordpress.org/log/ah-jwt-auth/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 2.4.0

 * Fix fatal error with JWKS caching

#### 2.3.0

 * Replace JWKS caching process

#### 2.2.0

 * Spelling fixes and hardening
 * Add option to enforce JWT auth (ie “fail-closed”) rather than falling
    through
   to WordPress authentication.

#### 2.1.0

 * Add option to verify JWT issuer

#### 2.0.0

 * **Breaking Change:** Any secrets that are less than 256-bits (32-characters)
   
   in length will fail JWT HS256 verification

#### 1.6.0

 * Added option to verify JWT Audience (AUD)
 * Added option to disable automatic user creation

#### 1.5.4

 * Fix bug that meant role was not being set based on selection

#### 1.5.3

 * Make JWKS refresh function public

#### 1.5.1

 * Fixes for JWKS refresh process

#### 1.5.0

 * Add WP cron job to refresh JWKS daily

#### 1.4.1

 * Update dependencies to resolve security issue

#### 1.3.1

 * Clean-ups and bug fixes

#### 1.3.0

 * Allow setting default role for auto-created users

#### 1.2.2

 * Version bump for plugin update on WordPress.org

#### 1.2.1

 * Version bump for plugin update on WordPress.org

#### 1.2.0

 * Fix a bug where an invalid JSON response from JWKS URL was cached leading to 
   broken SSO

#### 1.1.0

 * Make login process more efficient by skipping JWT verify/login if user is already
   authenticated

#### 1.0.3

 * Initial release on WordPress.org

#### 1.0.2

 * Added internationalisation for strings
 * Changes based on WordPress.org plugin submission feedback

#### 1.0.1

 * Added more error checking

#### 1.0.0

 * First version

## Meta

 *  Versie **2.4.0**
 *  Laatst geüpdatet **3 maanden geleden**
 *  Actieve installaties **20+**
 *  WordPress versie ** 4.7 of nieuwer **
 *  Getest t/m **7.0.0**
 *  PHP versie ** 8.0 of nieuwer **
 *  Taal
 * [English (US)](https://wordpress.org/plugins/ah-jwt-auth/)
 * Tags
 * [auth](https://nl.wordpress.org/plugins/tags/auth/)[authentication](https://nl.wordpress.org/plugins/tags/authentication/)
   [jwt](https://nl.wordpress.org/plugins/tags/jwt/)[login](https://nl.wordpress.org/plugins/tags/login/)
   [sso](https://nl.wordpress.org/plugins/tags/sso/)
 *  [Geavanceerde weergave](https://nl.wordpress.org/plugins/ah-jwt-auth/advanced/)

## Waarderingen

Er zijn nog geen beoordelingen ingediend.

[Je beoordeling](https://wordpress.org/support/plugin/ah-jwt-auth/reviews/#new-post)

[Bekijk alle beoordelingen](https://wordpress.org/support/plugin/ah-jwt-auth/reviews/)

## Bijdragers

 *   [ andrewheberle ](https://profiles.wordpress.org/andrewheberle/)

## Ondersteuning

Iets te melden? Hulp nodig?

 [Het supportforum bekijken](https://wordpress.org/support/plugin/ah-jwt-auth/)

## Doneren

Wil je de groei van deze plugin ondersteunen?

 [ Doneer aan deze plugin ](https://paypal.me/andrewheberle)