Oauth2

Paramétrage minimal d’un Client Oauth2

Le protocole Oauth2 ne proposant que tres récemment l’équivalent en standard du service discovery, il est nécessaire de reporter les urls d’autorisation (authorization_endpoint) et de validation du code (token_endpoint) dans le paramétrage pour les connecteurs Oauth2 (puisqu’ils ne prennent pas en charge cette auto-configuration).

Vous pouvez retrouver les urls d’api Oauth2 nécessaires dans le flux json retourné par le service de discovery OpenID Connect.

Ce qui donne l’ensemble de paramètres suivants:

  • Le client_Id
  • Le client_secret
  • Le response_type (scenario d’authentification souhaité)
  • Les scope (autorisations que l’on souhaite, comme le profil de l’utilisateur)
  • Votre url pour récuperer les informations à l’issue de l’authentification
  • L’url du serveur Oauth2 pour l’autorisation (authorization_endpoint)
  • L’url du serveur Oauth2 pour valider le code d’autorisation (token_endpoint)

Exemple :

Le protocole Oauth2 ne prend pas en charge le jeton d’identification id_token.

Si malgré tout, votre connecteur ou librairie OAuth2 peut vous donner accès à ce token à l’issue du processus d’authentification OAuth2, le scope doit être renseigné à “openid profile”. Il vous sera alors possible d’identifier l’utilisateur en analysant ce token (qui est au format JWT).

Sinon, il est possible d’utiliser l’API REST UserInfo OpenID Connect.

L’url de cette api correpond à la clé userinfo_endpoint renvoyée par l’api description du serveur OpenID Connect.

Exemple:

  GET /tenant/auth/oauth2/userinfo HTTP/1.1
  Host: secure-auth.team.preprod.moovapps.com
  Authorization: Bearer SlAV32hkKG

Ce qui permet d’utiliser le token d’api pour obtenir des informations du profil utilisateur au format OpenID Connect.

Exemple:

  HTTP/1.1 200 OK
   Content-Type: application/json
 
   {
    "sub": "248289761001",
    "name": "Jane Doe",
    "given_name": "Jane",
    "family_name": "Doe",
    "preferred_username": "j.doe",
    "email": "janedoe@example.com",
    "picture": "http://example.com/janedoe/me.jpg"
   }