Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.
Info

Pré-requis

  • Être familier des notions de Single Sign-On (SSO) et plus particulièrement OAuth2

  • Connaitre les bases du protocoles HTTP (query parameter, GET / POST, en-têtes)

  • Savoir utiliser un client HTTP tel que cURL ou un plugin navigateur équivalent 

...

Info

Le flot Authorization Code est le plus couramment utilisé

...

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 7acb83b1­53bd­4105­9b46­5acfb095158f" https://domaine.ent/auth/oauth2/userinfo 
Remarque

Dans l'en-tête "Authorization:Bearer " il faut passer le token

En cas de succes 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"
}

Json Web Token - Bearer :

Via les informations du JWT il est possible d’obtenir les informations authentification :

Astuce

Documentation officielle :

https://datatracker.ietf.org/doc/html/rfc7523

1 - Informations à récupérer de l'éditeur de l'application cliente : ( Supplémentaire )

  • URL du certificat ( à renseigner dans le champs "URL du certificat")

...

2 - Une fois la configuration dans la console administrateur : Récupération du token

Bloc de code
languageyaml
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
languagejson
{
    "token_type": "Bearer",
    "access_token": "5459a598-72f0-482c-b54a-fd44e92af5da",
    "expires_in": 3600,
    "scope": "email userinfo"
}