82 lines
3.5 KiB
Markdown
82 lines
3.5 KiB
Markdown
|
# 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 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:
|
||
|
|
||
|
```shell
|
||
|
# 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
|
||
|
|
||
|
```shell
|
||
|
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.
|
||
|
|
||
|
2. Activer le proxy `my-proxy`
|
||
|
|
||
|
```shell
|
||
|
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
|
||
|
|
||
|
```shell
|
||
|
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
|
||
|
|
||
|
```shell
|
||
|
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
|
||
|
|
||
|
- [Référence du layer `authn-oidc`](../../fr/references/layers/authn/oidc.md)
|