46 lines
1.7 KiB
Markdown
46 lines
1.7 KiB
Markdown
|
# Les layers `authn-*`
|
||
|
|
||
|
Les layers `authn-*` permettent d'activer différents modes d'authentification au sein d'un proxy Bouncer.
|
||
|
|
||
|
Les informations liées à l'utilisateur authentifié sont ensuite injectables dans les entêtes HTTP de la requête permettant ainsi une authentification unique("SSO") basée sur les entêtes HTTP ("Trusted headers SSO").
|
||
|
|
||
|
## Options communes
|
||
|
|
||
|
Tous les layers `authn-*` partagent un certain nombre d'options communes.
|
||
|
|
||
|
### `matchURLs`
|
||
|
|
||
|
- **Type:** `[]string`
|
||
|
- **Valeur par défaut:** `["*"]`
|
||
|
- **Description:** Limiter l'action du layer à cette liste de patrons d'URLs.
|
||
|
|
||
|
Par exemple, si vous souhaitez limiter votre file à l'ensemble d'une section "`/blog`" d'un site, vous pouvez déclarer la valeur `["*/blog*"]`. Les autres URLs du site ne seront pas affectées par ce layer.
|
||
|
|
||
|
### `headers.rules`
|
||
|
|
||
|
- **Type:** `[]string`
|
||
|
- **Valeur par défaut:**
|
||
|
```yaml
|
||
|
# Voir internal/proxy/director/layer/authn/layer_options.go
|
||
|
- del_headers('Remote-*')
|
||
|
- set_header('Remote-User', lower(user.subject))
|
||
|
- set_header('Remote-Name', user.attrs.claim_name != nil ? user.attrs.claim_name : '')
|
||
|
- user.attrs.claim_groups != nil ? set_header('Remote-Groups', join(user.attrs.claim_groups, ',')) : nil
|
||
|
- set_header('Remote-Email', user.attrs.claim_email != nil ? user.attrs.claim_email : '')
|
||
|
- |
|
||
|
map(
|
||
|
toPairs(user.attrs), {
|
||
|
let name = replace(lower(string(get(#, 0))), '_', '-');
|
||
|
set_header(
|
||
|
'Remote-User-Attr-' + name,
|
||
|
get(#, 1)
|
||
|
)
|
||
|
}
|
||
|
)
|
||
|
```
|
||
|
- **Description:** Liste des règles d'injection d'entêtes HTTP. Voir la section `Règles d'injection d'entêtes` pour plus de détails.
|
||
|
|
||
|
## Layers
|
||
|
|
||
|
- [`authn-oidc`](./oidc.md) - Authentification OpenID Connect
|