William Petit
7456dba96f
All checks were successful
Cadoles/bouncer/pipeline/head This commit looks good
73 lines
3.5 KiB
Markdown
73 lines
3.5 KiB
Markdown
# Layer `authn-oidc`
|
|
|
|
## Description
|
|
|
|
Ce layer permet d'ajouter une authentification OpenID Connect au service distant.
|
|
|
|
Voir le tutoriel ["Ajouter une authentification OpenID Connect"](../../../tutorials/add-oidc-authn-layer.md) pour plus d'informations quant à son utilisation.
|
|
|
|
## Type
|
|
|
|
`authn-oidc`
|
|
|
|
## Schéma des options
|
|
|
|
Les options disponibles pour le layer sont décrites via un [schéma JSON](https://json-schema.org/specification). Elles sont documentées dans le [schéma visible ici](../../../../../internal/proxy/director/layer/authn/oidc/layer-options.json).
|
|
|
|
En plus de ces options spécifiques le layer peut également être configuré via [les options communes aux layers `authn-*`](../../../../../internal/proxy/director/layer/authn/layer-options.json).
|
|
|
|
## Objet `user` et attributs
|
|
|
|
L'objet `user` exposé au moteur de règles sera construit de la manière suivante:
|
|
|
|
- `user.subject` sera initialisé avec la valeur du [claim](https://openid.net/specs/openid-connect-core-1_0.html#Claims) `sub` extrait de l'`idToken` récupéré lors de l'authentification ;
|
|
- `user.attrs` comportera les propriétés suivantes:
|
|
|
|
- L'ensemble des `claims` provenant de l'`idToken` seront transposés en `claim_<name>` (ex: `idToken.iss` sera transposé en `user.attrs.claim_iss`) ;
|
|
- `user.attrs.access_token`: le jeton d'accès associé à l'authentification ;
|
|
- `user.attrs.refresh_token`: le jeton de rafraîchissement associé à l'authentification (si disponible, en fonction des `scopes` demandés par le client) ;
|
|
- `user.attrs.token_expiry`: Horodatage Unix (en secondes) associé à la date d'expiration du jeton d'accès ;
|
|
- `user.attrs.logout_url`: URL de déconnexion pour la suppression de la session Bouncer.
|
|
|
|
**Attention** Cette URL ne permet dans la plupart des cas que de supprimer la session côté Bouncer. La suppression de la session côté fournisseur d'identité est conditionné à la présence ou non de l'attribut [`end_session_endpoint`](https://openid.net/specs/openid-connect-session-1_0-17.html#OPMetadata) dans les données du point d'entrée de découverte de service (`.wellknown/openid-configuration`).
|
|
|
|
## Métriques
|
|
|
|
Les [métriques Prometheus](../../metrics.md) suivantes sont exposées par ce layer.
|
|
|
|
### `bouncer_layer_authn_oidc_login_requests_total{layer=<layerName>,proxy=<proxyName>}`
|
|
|
|
- **Type:** `counter`
|
|
- **Description**: Nombre total de demandes d'authentification
|
|
- **Exemple**
|
|
|
|
```
|
|
# HELP bouncer_layer_authn_oidc_login_requests_total Bouncer's authn-oidc layer total login requests
|
|
# TYPE bouncer_layer_authn_oidc_login_requests_total counter
|
|
bouncer_layer_authn_oidc_login_requests_total{layer="my-layer",proxy="my-proxy"} 1
|
|
```
|
|
|
|
### `bouncer_layer_authn_oidc_login_successes_total{layer=<layerName>,proxy=<proxyName>}`
|
|
|
|
- **Type:** `counter`
|
|
- **Description**: Nombre total d'authentifications réussies
|
|
- **Exemple**
|
|
|
|
```
|
|
# HELP bouncer_layer_authn_oidc_login_successes_total Bouncer's authn-oidc layer total login successes
|
|
# TYPE bouncer_layer_authn_oidc_login_successes_total counter
|
|
bouncer_layer_authn_oidc_login_successes_total{layer="my-layer",proxy="my-proxy"} 1
|
|
```
|
|
|
|
### `bouncer_layer_authn_oidc_logout_total{layer=<layerName>,proxy=<proxyName>}`
|
|
|
|
- **Type:** `counter`
|
|
- **Description**: Nombre total de déconnexions
|
|
- **Exemple**
|
|
|
|
```
|
|
# HELP bouncer_layer_authn_oidc_logout_total Bouncer's authn-oidc layer total logouts
|
|
# TYPE bouncer_layer_authn_oidc_logout_total counter
|
|
bouncer_layer_authn_oidc_logout_total{layer="my-layer",proxy="my-proxy"} 1
|
|
```
|