...
Info |
---|
Pré-requis |
Info |
|
Démarche
Ce document propose un démarche d'intégration de service tiers en tant que client SSO (Single Sign-On) .
Notre choix se porte sur l'utilisation d'oAuth2 qui simplifie entres autres la propagation d'attributs et la compatibilité avec les applications mobiles.
ODE framework dispose d'un serveur oAuth2 qui supportent d’une application tiers en s’appuyant sur le protocole OAuth 2.0
1 - Choisir un flot d’authentification OAuth2
La plateforme Édifice propose un serveur OAuth2 qui supporte les "flots" suivant :
support du flot "Authorisation Code" (authentification d'une application web)
support du flot "Resource Owner Passwword" (authentification d'une application mobile de confiance)
support du flot "Client Credential"
propagation d'attribut par API REST protégée par un jeton (en-tête : bearer)
Remarque |
---|
Nous recommandons fortement d'alimenter en données utilisateurs l'application cliente au fil de l'eau plutôt que par export en masse. En d'autres termes, nous préconisons une création/mise à jour des comptes utilisateurs/ou méta données afférentes à chaque connexion (fil de l'eau). |
1 : Choisir le ou les attributs d'authentification
...
Bloc de code |
---|
{
"level":"",
"lastName":"ALEXANDRE",
"firstName":"SEVERINE",
"externalId":"5555959",
"type":"ENSEIGNANT",
"childrenIds":[],
"uai":["0805432C"],
"userId":"2bacdfd2-b59c-4b21-a23e-f6346e02fc4a",
"classId":"55567$3ARMS",
"schoolName":"Collège Denis Poisson"
} |
Remarque |
---|
Les attributs demandés par l'application cliente doivent être validés au niveau du projet |
2 : Configurer dans l'ENT
...
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/
Info |
---|
Le flot Authorization Code est le plus couramment utilisé |
2 - Enregistrer l’application cliente sur la plateforme Édifice
Remarque |
---|
Si vous êtes un éditeur ou un exploitant d’application, demandez au Support Édifice d’enregistrer votre application |
Depuis la console d(administration d’une plateforme Édifice créer un connecteur de type OAuth2
Champs à configurer :
"Identitifiant" (clientId oAuth2)
"URL" (URL de service cible)
"Transmettre la session" (configure automatiquement le scope userinfo)
"Scope" (autorisations d'accès aux données utilisateurs de l'application externe)
"Mode d'identification" (utiliser "code" pour une application web et "password" pour une application mobile)
Code secret" (secret oAuth2).
...
URL de service ( à renseigner dans le champs "URL")
3 :
...
Tester l’accès Oauth2 de 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é.
Authorization Code
1 : Récupérer code de génération du token
Dans un navigateur, entrer l'adresse :
...
Si l'utilisateur n'est pas connecté alors l'ENT la plateforme Édifice redirige le navigateur vers la mire connexion
Si l'utilisateur est connecté alors l'ENT la plateforme Édifice le redirige vers l'URL de service avec le code en paramètre :
|
2 - 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
|
Remarque |
---|
Dans l'en-tête "Authorization:Bearer " il faut passer le token |
En cas de succes le serveur oAuth2 OAuth2 de l'ENT transmet le tokenla ressource de l’utilisateur demandée
|
Précision sur le formats
...
"uai": Tableau des UAI (anciennement nommés RNE) des établissements auxquels appartient l'utilisateur
...
Resource Owner Passwword
1 - Récupérer le token
|
En cas de succes le serveur oAuth2 de l'ENT transmet 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
|
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
|