Mise à jour de 'authentification.md'

This commit is contained in:
Matthieu Lamalle 2020-07-03 16:11:30 +02:00
parent f08ce4018d
commit 214d2109aa
1 changed files with 54 additions and 0 deletions

54
authentification.md Normal file
View File

@ -0,0 +1,54 @@
# Authentification
L'utilisation de Risotto nécessite un système d'authentification.
Afin de gérer l'authentification, le système doit délivrer un jeton permettant de valider
l'utilisateur avec l'IDP.
Les normes Oauth2 et notamment OIDC sont a envisager.
Le token servira à authentifier l'utilisateur, récupérer ses informations, et ainsi définir sa portée et ses droits.
Le token devra être renouvellé régulièrement afin de garantir la sécurité de l'applicatif.
## Exemple avec LemonLDAP et OIDC
### Demande de code d'authorization
- HTTP :
```
GET /oauth2/authorize?scope=openid&response_type=code&client_id=<CLIENT-ID>&client_secret=<CLIENT-SECRET>&redirect_uri=https://test1.cadoles.lan HTTP/1.1
Host: auth.cadoles.lan:443
```
- cURL :
```
curl -L -k https://auth.cadoles.lan/oauth2/authorize?scope=openid&response_type=code&client_id=<CLIENT-ID>&rclient_secret=<CLIENT-SECRET>&redirect_uri=https://test1.cadoles.lan
```
**Réponse :**
```
302 Found
to: https://test1.cadoles.lan?
code=61ac08c00acf2db3ec86ee3927198812&
session_state=xSSAehr9Tw13CxwkJdD4fPK%2FdIs9bsE1svdNYPaV4Kk%3D.Q0FxaHI5TDlTVk91WHdEdm1qU1FTK3N1Q2FuZitia2dQUjcwdThsTWNsNjkxcU15bE4yQS91U2NsTFdKeUF6SDFCMEU2MTJad1M2a2lubkhMdTJqclE9PQ
```
### Récupération du token
- HTTP :
```
GET /oauth2/authorize?scope=openid&response_type=code&client_id=<CLIENT-ID>&client_secret=<CLIENT-SECRET>&redirect_uri=https://test1.cadoles.lan HTTP/1.1
Host: auth.cadoles.lan:443
```
- cURL :
```
curl -L -k --request POST \
--url 'https://auth.cadoles.lan/oauth2/token' \
--header 'content-type: application/x-www-form-urlencoded' \
--data 'grant_type=authorization_code' \
--data 'client_id=<CLIENT-ID>' \
--data 'client_secret=<CLIENT-SECRET>' \
--data 'code=4901feab4aead50dba657d19afbf18bf' \
--data 'redirect_uri=https://test1.cadoles.lan'
```