Info |
---|
Pré-requis
|
...
La plateforme Édifice propose un serveur OAuth2 qui supporte les "flots" suivant flots (aka grant type) suivants :
Authorization Code : https://oauth.net/2/grant-types/authorization-code/
Resource Owner Passwword : https://oauth.net/2/grant-types/password/
Client Credential :https://oauth.net/2/grant-types/client-credentials/
Jwt bearer : https://datatracker.ietf.org/doc/html/rfc7523
...
URL de service ( à renseigner dans le champs "URL")
3
...
- Récupérer un jeton (access_token) OAuth2 pour votre application client
Voici la procédure de test, une fois le paramétrage réalisé, il consiste à simuler l'ensemble des requêtes nécessaire à l'obtention des données de l'usager connecté.Pour récupérer un jeton, suivre la procédure qui correspond au grant type choisi :
Authorization Code : https://oauth.net/2/grant-types/authorization-code/
Resource Owner Passwword : https://oauth.net/2/grant-types/password/
Client Credential :https://oauth.net/2/grant-types/client-credentials/
Jwt bearer : https://datatracker.ietf.org/doc/html/rfc7523
Authorization Code
1 : Récupérer code de génération du token
...
|
3 : Accéder à une ressource de l’utilisateur depuis l’application cliente
Dans cet exemple nous collectons des informations d’identités de l’utilisateurs sur le endpoints /userinfo
Remarque |
---|
Dans l'en-tête "Authorization:Bearer " il faut passer le token |
En cas de succès le serveur OAuth2 de l'ENT transmet la ressource de l’utilisateur demandée
...
Bloc de code |
---|
HTTP/1.1 200 OK
Content-Type: application/json
{
"level":"",
"login":"severine.alexandre",
"lastName":"ALEXANDRE",
"firstName":"SEVERINE",
"externalId":"5555959",
"username":"SEVERINE ALEXANDRE",
"type":"ENSEIGNANT",
"childrenIds":[],
"uai":["0805432C"],
"userId":"2bacdfd2-b59c-4b21-a23e-f6346e02fc4a",
"classId":"55567$3ARMS",
"schoolName":"Collège Denis Poisson"
} |
Resource Owner Passwword
1 - Récupérer le token
...
|
3 - Accéder à une ressource de l’utilisateur depuis l’application cliente
Dans cet exemple nous collectons des informations d’identités de l’utilisateurs sur le endpoints /userinfo
...
Bloc de code |
---|
curl -i -H "Authorization:Bearer 7acb83b153bd41059b465acfb095158f" https://domaine.ent/auth/oauth2/userinfo |
Remarque |
---|
Dans l'en-tête "Authorization:Bearer " il faut passer le token |
En cas de succes le serveur OAuth2 de l'ENT transmet la ressource de l’utilisateur démandée
...
Bloc de code |
---|
HTTP/1.1 200 OK
Content-Type: application/json
{
"level":"",
"login":"severine.alexandre",
"lastName":"ALEXANDRE",
"firstName":"SEVERINE",
"externalId":"5555959",
"username":"SEVERINE ALEXANDRE",
"type":"ENSEIGNANT",
"childrenIds":[],
"uai":["0805432C"],
"userId":"2bacdfd2-b59c-4b21-a23e-f6346e02fc4a",
"classId":"55567$3ARMS",
"schoolName":"Collège Denis Poisson"
} |
...
Client Credential
Remarque |
---|
A DOCUMENTER |
JWT Bearer
Via les informations du JWT il est possible d’obtenir les informations authentification :
Astuce |
---|
Documentation officielle : https://datatracker.ietf.org/doc/html/rfc7523 |
...
0 - Configurer l’URL du certificat (la clé publique) de l'
...
application cliente
...
Renseigner le champs "URL du certificat"
...
dans fiche connecteur
...
...
1 - Récupérer le token
Bloc de code | ||
---|---|---|
| ||
curl --location --request POST 'https://domaine.ent/auth/oauth2/token' \ --data-urlencode 'grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer' \ --data-urlencode 'redirect_uri=https://www.duckduckgo.com' \ --data-urlencode 'client_id={YOUR_CLIENT_ID}' \ --data-urlencode 'client_secret={YOUR_SECRET}' \ --data-urlencode 'assertion={YOUR_JSON_WEB_TOKEN}' \ --data-urlencode 'scope={SCOPE}' |
3 - En cas de succes le serveur OAuth2 de l'ENT transmet l’Access Token
Bloc de code | ||
---|---|---|
| ||
{
"token_type": "Bearer",
"access_token": "5459a598-72f0-482c-b54a-fd44e92af5da",
"expires_in": 3600,
"scope": "email userinfo"
} |
4 - Accéder à une ressource de l’utilisateur depuis l’application cliente
Dans cet exemple nous collectons des informations d’identités de l’utilisateurs sur le endpoints /userinfo
|
Remarque |
---|
Dans l'en-tête "Authorization:Bearer " il faut passer le token |
En cas de succès le serveur OAuth2 de l'ENT transmet la ressource de l’utilisateur demandée
|