Notions de jeton
Jeton d'identification ou d'identité (id token)
Le jeton d'identification est spécifique au protocole d’authentification OpenID Connect (OIDC). Il est émis par le service d’authentification de la Plateforme d’Identité Mozaïk et contient des informations sur l’utilisateur.
Les informations contenues dans ce jeton permettent de confirmer à l’application cliente que l’utilisateur est bien celui qu’il prétend être.
Voici un exemple de requête de connexion pour obtenir un jeton d'identification.
Note: Une application avec les bons paramètres doit être créée dans Espace API.
GET https://mozaikacces.ca/connect/authorize?
client_id=7eff70rb-0c6a-4600-b605-04867f4e0edb
&redirect_uri=https://jwt.io
&response_type=code
&scope=openid profile email
&nonce=z6SyFta2T924w1VXrAM1qqZ6
&state=2L9pb4GH0Bn7AawSl1sl5Y8G
Lors du décodage et de la validation du jeton d'identification, les données nom, prénom et courriel ne sont pas affichées pour une raison de sécurité.
Pour décoder un jeton, vous pouvez utiliser le site https://jwt.io ou toute autre application qui permet de décoder un jeton.
Lors du décodage du jeton, les revendications (claims) de celui-ci s'afficheront.
Par exemple:
| Revendications | Explications |
|---|---|
| exp: 1658325895 | Date/heure d'expiration du jeton - représenté en nombre de secondes depuis 1970-01-01 00:00:00 UTC. N'a pas de lien avec la durée de session de l'utilisateur |
| iss: https://mozaikacces.ca | Serveur d'authentification qui a émis le jeton |
| aud: 7eff70rb-0c6a-4600-b605-04817a4e0ebf | Identifiant client (client id) de l'application |
| iat: 1658325595 | Date/heure à laquelle le jeton a été créé - représenté en nombre de secondes depuis 1970-01-0100:00:00 UTC |
| at_hash: UUnBOBC8tiVfNGd8-CbFUw | Valeur hachée retournée par le point de terminaison /authorize. Sert à valider l'authenticité du jeton d'accès |
| s_hash: TMWpW323s9gGALKSuStrkg | Valeur hachée qui permet de valider le state |
| sid: q6Y80HXLBsHZ8nPbN6858g | Identifiant de la session au service d'authentification |
| sub: a1dbeceb-7c19-4e53-bac8-ce7e0c6e474f | Identifiant unique de l'utilisateur dans le service d'authentification |
| auth_time: 1658325594 | Date/heure de l'authentification au service d'authentification - représenté en nombre de secondes depuis 1970-01-01 00:00:00 UTC |
| idp: Microsoft | Fournisseur d'identité qui a authentifié l'utilisateur |
| tenant_id: 6517ac90-6f4d-46cf-878f-c5u6875291ffd | Identifiant de l'abonnement de l'organisation scolaire dans Mozaïk-Portail |
| amr: external | Méthode d'authentification utilisée par l'utilisateur |
Pour accéder aux données nom, prénom, courriel de l'utilisateur authentifié, il faut utiliser le point de terminaison https://mozaikacces.ca/connect/userinfo.
L'appel de la route /connect/userinfo en utilisant les portées openid, email et profile affiche un résultat similaire à celui-ci.
{
"sub": "a1dbeceb-7c19-4e53-bac8-ce7e0c6e474f",
"preferred_username": "testutilisateur@servicesgrics.ca",
"email": "testutilisateur@servicesgrics.ca",
"email_verified": true,
"family_name": "Fournier",
"given_name": "Jasmine",
"name": "Jasmine Fournier"
}
Dans Espace API, le jeton d'identification peut être utilisé avec des applications possédant un flux de sécurité « accessCode », c'est à dire qui exige l'authentification d'un utilisateur:

Jeton d'accès (Access token)
Le jeton d'accès permet à l’utilisateur d’appeler de manière sécurisée les API d’Espace API. Il permet de faire l’authentification et l’autorisation.
Pour un flux de sécurité « accessCode », le jeton d'accès est obtenu par la requête:
POST https://mozaikacces.ca/connect/token?
client_id=7eff70rb-0c6a-4602-b605-04817a4e0ebf
&redirect_uri=https://jwt.io
&scope=openid email profile apiclients
&grant_type=authorization_code
&code=372d283f708636f21cefa450d053279748e2ab638ad3b7565534
&code_verifier=X2qZ51vjL_b7RaVeTo8xD6ylEbGQDes6Bgp0zTsXSXg
Pour plus d'information sur les paramètres de ce flux de sécurité, vous pouvez consulter cette documentation: https://docs.mozaikacces.ca/app-native.html
Le contenu d'un jeton d'accès pour le flux de sécurité « accessCode » ressemble à ceci:
| Revendications | Explications |
|---|---|
| exp: 1658333878 | Date/heure d'expiration du jeton - représenté en nombre de secondes depuis 1970-01-01 00:00:00 UTC. N'a pas de lien avec la durée de session de l'utilisateur |
| iss: https://mozaikacces.ca | Serveur d'authentification qui a émis le jeton |
| client_id: 7eff70fb-0c6a-4600-b604-04817a4e0ecf | L'identifiant de l'application dans Espace API |
| sub: a1dbeceb-7c19-4e53-bac8-ce7e0c6e474f | Identifiant unique de l'utilisateur dans le service d'authentification |
| auth_time: 1658330277 | Date/heure de l'authentification au service d'authentification - représenté en nombre de secondes depuis 1970-01-01 00:00:00 UTC |
| idp: Microsoft | Fournisseur d'identité qui a authentifié l'utilisateur |
| tenant_id: 6517ac90-6f4d-46cf-878f-c4a670597fcb | Identifiant de l'abonnement de l'organisation scolaire dans Mozaïk-Portail |
| scope: [openid,email,profile, apiclients] | Portées utilisées |
| amr: [external] | Méthode d'authentification utilisée par l'utilisateur |
Pour un flux de sécurité « application », le jeton d'accès est obtenu par la requête:
POST https://mozaikacces.ca/connect/token?
client_id=7eff70rb-0c6a-4600-b605-04817a4e0ert
&client_secret=gert54646tyRhgtewfsdgfwer54PWlik
&grant_type=client_credentials
&scope=apiclients
Pour plus d'information sur les paramètres de ce flux de sécurité, vous pouvez consulter cette documentation: https://docs.mozaikacces.ca/app-machine.html
Le contenu du jeton d'accès pour le flux de sécurité « application » ressemble à ceci:
| Revendications | Explications |
|---|---|
| nbf: 1657023070 | Not before - Délai avant lequel le jeton ne doit pas être accepté pour traitement - représenté en nombre de secondes depuis 1970-01-01 00:00:00 UTC |
| exp: 1657026670 | Date/heure d'expiration du jeton - représenté en nombre de secondes depuis 1970-01-01 00:00:00 UTC. N'a pas de lien avec la durée de session de l'utilisateur |
| iss: https://mozaikacces.ca | Serveur d'authentification qui a émis le jeton |
| aud: apiclients | Audience - Correspond à la ressource d'Espace API |
| client_id: 4a0be327-f960-4ce9-a07b-85a653f6c292 | L'identifiant de l'application dans Espace API |
| tenant_id: 6517ac90-6f4d-46cf-878f-c4a670597fcb | Identifiant de l'abonnement de l'organisation scolaire dans Mozaïk-Portail |
| scope: [apiclients] | Portée utilisée |
Le jeton d'accès est requis pour tous les types de sécurité.

Pour obtenir de l'information sur la durée de vie des jetons: https://docs.mozaikacces.ca/tokens-lifetime.html