73 lines
3.4 KiB
Markdown
73 lines
3.4 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 valué avec la valeur [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 endpoint `.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
|
||
|
```
|