bouncer/doc/fr/tutorials/add-oidc-authn-layer.md
William Petit de70fa89f7
Some checks are pending
Cadoles/bouncer/pipeline/pr-develop Build started...
feat: new openid connect authentication layer
2024-05-17 11:53:19 +02:00

3.5 KiB

Ajouter une authentification OpenID Connect

Dans ce tutoriel nous verrons comment ajouter un layer de type oidc-authn à un proxy pour ajouter une authentification OpenID Connect à notre service distant.

Prérequis

Création d'une application OAuth2

Pour réaliser ce tutoriel nous allons utiliser la forge Cadoles comme fournisseur d'identité. Vous devrez donc créer une application OAuth2 avec votre compte Cadoles sur https://forge.cadoles.com/user/settings/applications et collecter les informations suivantes:

  • Identifiant du client ;
  • Secret du client.

Concernant l'URL de redirection, si vous ne modifiez pas l'option oidc.loginCallbackPath vous devrez renseigner une URL répondant au modèle suivant:

<base_url>/.bouncer/authn/oidc/<proxy_name>/<layer_name>/callback

  • <base_url> est l'URL de base d'accès à votre instance Bouncer, par exemple http://localhost:8080 si vous avez travaillez avec une instance Bouncer locale avec la configuration par défaut ;
  • <proxy_name> est le nom du proxy créé dans Bouncer, dans ce tutoriel my-proxy ;
  • <layer_name> est le nom du layer créé dans Bouncer, dans ce tutoriel my-layer.

Démarrer le serveur dummy pour l'introspection des entêtes reçus

Bouncer intègre un serveur de test qui permet l'introspection des entêtes HTTP reçus dans la requête. Nous allons utiliser celui ci comme service distant afin de visualiser les entêtes générés par notre layer d'authentification.

Pour le lancer:

# Avec le binaire
bouncer server dummy run

# Avec Docker
docker run -it --rm -p 8082:8082 --read-only reg.cadoles.com/cadoles/bouncer:latest bouncer server dummy run

Par défaut ce serveur écoute sur le port 8082. Il est possible de modifier l'adresse d'écoute via le drapeau --address.

Étapes

  1. Avec le client d'administration de Bouncer en ligne de commande, créer un nouveau proxy

    bouncer admin proxy create --proxy-name my-proxy --proxy-to http://localhost:8082
    

    http://localhost:8082 est l'adresse de notre serveur dummy de test, lancé dans les prérequis.

  2. Activer le proxy my-proxy

    bouncer admin proxy update --proxy-name my-proxy --proxy-enabled
    
  3. À ce stade, vous devriez pouvoir afficher la page du serveur dummy en ouvrant l'URL de votre instance Bouncer, par exemple http://localhost:8080 si vous avez travaillez avec une instance Bouncer locale avec la configuration par défaut

  4. Créer un layer de type authn-oidc pour notre nouveau proxy

    bouncer admin layer create --proxy-name my-proxy --layer-name my-layer --layer-type authn-oidc
    
  5. Configurer le nouveau layer my-layer avec les options collectée dans les prérequis et l'activer

    bouncer admin layer update --proxy-name my-proxy --layer-name my-layer --layer-options '{ "oidc":{"clientId": "<clientId>", "clientSecret":"<clientSecret>", "issuerURL": "https://forge.cadoles.com/" }}' --layer-enabled
    

    Où:

    • <clientId> est l'identifiant du client OIDC récupéré dans les prérequis ;
    • <clientSecret> est le secret du client OIDC récupéré dans les prérequis.
  6. À ce stade en ouvrant l'URL de votre instance Bouncer vous devriez être redirigé vers la forge Cadoles vous demandant de vous authentifier. Une fois authentifié vous devriez arriver sur la page du serveur dummy avec les nouveaux entêtes liés à votre authentification (entêtes Remote-User-*).

Ressources