3.6 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
Où
<base_url>
est l'URL de base d'accès à votre instance Bouncer, par exemplehttp://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 tutorielmy-proxy
;<layer_name>
est le nom du layer créé dans Bouncer, dans ce tutorielmy-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
-
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
Où http://localhost:8082 est l'adresse de notre serveur
dummy
de test, lancé dans les prérequis. -
Activer le proxy
my-proxy
bouncer admin proxy update --proxy-name my-proxy --proxy-enabled
-
À ce stade, vous devriez pouvoir afficher la page du serveur
dummy
en ouvrant l'URL de votre instance Bouncer, par exemplehttp://localhost:8080
si vous travaillez avec une instance Bouncer locale avec la configuration par défaut -
Créer un layer de type
authn-oidc
pour notre nouveau proxybouncer admin layer create --proxy-name my-proxy --layer-name my-layer --layer-type authn-oidc
-
Configurer le nouveau layer
my-layer
avec les options collectée dans les prérequis et l'activerbouncer 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.
-
À 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êtesRemote-User-*
).