Gestion des séances
La plateforme Authenti-Canada fonctionne comme une autorité de gestion de session qui coordonne de façon centralisée les sessions des utilisateurs dans plusieurs applications de parties de confiance (PC). La plateforme comporte deux caractéristiques clés qui la soutiennent : authentification unique et déconnexion unique.
Authentification unique
Une fois qu’un utilisateur a utilisé avec succès un justificatif quelconque ou un service d’identité numérique de confiance pour s’authentifier auprès d’une PC, Authenti-Canada peut lui permettre de s’authentifier en silence auprès d’autres PC, sous réserve d’une période d’attente d’authentification unique. La plateforme y parvient en créant sa propre session avec l’utilisateur lors de sa première connexion, puis en ne les invitant pas à se réauthentifier lorsqu’ils se connectent à d’autres PC pendant un délai d’inactivité spécifiée.
La fenêtre d’attente de l’authentification unique démarre chaque fois qu’un utilisateur saisit son mot de passe correct à un fournisseur de justificatif d’identité (FJI) et se termine après une période spécifiée. Par défaut, il s’agit de 20 minutes, mais les parties qui se connectent au Canada peuvent modifier ce délai si elles le souhaitent. Il est toutefois important de noter que la fenêtre d’authentification unique des services d’authentifiant CléGC et le service de courtier de justificatifs d’identité, qui est également de 20 minutes, ne peut pas être modifié, elle ne peut être désactivée (appelée authentification forcée). Dans toute situation où le délai d’attente « codé en dur » pourrait entrer en conflit avec le délai d’attente préféré d’une partie de confiance, la plateforme Authenti-Canada synchronisera automatiquement les deux et résoudra le conflit.
Notez que pour que l’authentification unique fonctionne, l’utilisateur doit utiliser les mêmes informations d’identification ou la même identité numérique de confiance pour accéder à tous les services gouvernementaux numériques. À l’heure actuelle, cela n’est pas possible puisque tous les services du gouvernement du Canada n’acceptent pas les mêmes justificatifs. Par exemple, l’accès aux services fiscaux en ligne fournis par l’Agenge du revenu du Canada n’est actuellement pas possible à l’aide d’un justificatif d’identité de CléGC. Par conséquent, les utilisateurs qui ont choisi d’utiliser un justificatif de CléGC ne peuvent pas s’inscrire à Mon dossier pour les particuliers de l’ARC.
Déconnexion unique
Lorsqu’un utilisateur a visité plusieurs sites Web (applications de partie de confiance) au cours de la même session, la plateforme Authenti-Canada a la capacité de coordonner de manière centralisée une déconnexion unique. Avec une déconnexion unique, l’utilisateur n’a qu’à cliquer sur un bouton de déconnexion sur le site qu’il visite actuellement, et Authenti-Canada les déconnectera ensuite de tous les autres sites qu’il a visités pendant sa session.
La propagation de la déconnexion sur tous ces sites peut utiliser le mécanisme de déconnexion OpenID Connect Front-Channel, le mécanisme de déconnexion OpenID Connect Back-Channel ou le profil de déconnexion SAML à l’aide de liaisons de canal frontal (HTTP-Redirect) ou de canal secondaire (SOAP). La plateforme Authenti-Canada appuie tous ces éléments.
Les protocoles OpenID Connect (OIDC) et SAML suivent la même séquence d’événements de base :
- Comme un utilisateur visite plusieurs sites Web (applications) au cours de la même session, la plateforme Authenti-Canada permet de suivre les sites qu’il a visités.
- Lorsque l’utilisateur clique sur un bouton de déconnexion sur l’un des sites qu’il visite, l’application Web de ce site envoie une demande de déconnexion à la plateforme Authenti-Canada.
- Authenti-Canada envoie ensuite une demande de déconnexion à tous les autres sites que l’utilisateur a visités, afin qu’il puisse déconnecter l’utilisateur.
Transition et coexistence
Il y aura une période de transition prolongée à mesure que les applications PC se connecteront à Authenti-Canada et se déconnecteront progressivement un à un de la fédération des justificatifs du gouvernement du Canada (FJGC) CléGC et Services de courtier de justificatifs d’identité. Pendant cette période de transition, la plateforme Authenti-Canada servira d’autorité de gestion de session pour les applications qui y sont connectées, tandis que les services CléGC et services de courtier de justificatifs d’identité serviront d’autorité de gestion de session pour les applications qui y sont connectées.
Cela crée une obligation pour Authenti-Canada de coordonner une déconnexion unique avec CléGC et les services de courtier de justificatifs d’identité (SCJI), ainsi qu’avec ses propres PC. La plateforme y parvient en appuyant le profil de déconnexion unique SAML dans le cadre de son intégration, en tant que fournisseur de justificatifs d’identité proxy SAML, avec CléGC et services de courtier de justificatif d’identité. La plateforme Authenti-Canada est en mesure de coordonner une déconnexion unique avec la fédération des justificatifs du gouvernement du Canada (FJGC) dans les deux sens. C’est-à-dire, peu importe si l’utilisateur se déconnecte d’abord d’Authenti-Canada ou s’il se déconnecte d’abord de la FJGC.
Scénario 1 : Un utilisateur se déconnecte d’abord d’Authenti-Canada
L’exemple suivant illustre comment une déconnexion unique est réalisée dans le cas où l’utilisateur clique sur un bouton de déconnexion sur un site de la partie de confiance qui est connecté à Authenti-Canada.
Le scénario commence lorsqu’un utilisateur clique sur un bouton de déconnexion sur le site de la partie de confiance qu’il utilise. Lorsque cela se produit :
- L’application de la partie de confiance déconnecte l’utilisateur localement d’abord, puis redirige le navigateur vers le point de terminaison OpenID Connect de session des plateformes d’acceptation.
- Si des parties de confiance qui participent à la session appuient la déconnexion en mode canal arrière de Connexion OpenID, la plateforme d’acceptation envoie d’abord un jeton de déconnexion à tous, à travers un POST HTTP à leurs URI de déconnexion en mode canal arrière enregistré pour déclencher les actions de déconnexion de ces PC. S’il y a plusieurs parties de confiance, ces demandes sont toutes envoyées simultanément, en parallèle.
- Une fois la déconnexion canal arrière terminée, la plateforme d’acceptation
retourne une page de propagation de déconnexion
HTML au navigateur. Cette page
contient un certain nombre d’éléments
iframe.
L’attribut src (source) de tous les éléments, sauf un, pointe vers l’URI de
déconnexion du canal avant de l’un des sites de partie de confiance
d’Authenti-Canada où l’utilisateur s’est connecté pendant sa session en
cours. Dans le diagramme, ces autres sites sont désignés comme « autres PC de
l’OIDC ». L’attribut
src
de l’iframe final pointe vers un point terminal URI du Cadre d’acceptation de la plateforme d’acceptation. - Dès réception de la page de propagation, le navigateur commence à charger en
parallèle l’intégralité de la valeur des _iframe_s, en envoyant de manière
asynchrone une requête HTTP GET à l’URI
src
de chaque _iframe. - Lorsque les autres parties de confiance reçoivent ces demandes, elles déconnectent l’utilisateur localement, puis retournent une réponse HTTP au navigateur.
- Lorsque le cadre d’acceptation de la plateforme d’acceptation reçoit sa demande, il crée un message SAML de demande de déconnexion, puis redirige le navigateur avec ce message (dans le cadre iframe) vers l’ancien PSC (CléGC ou FJI) avec lequel l’utilisateur a choisi de se connecter.
- Le FSI déconnecte ensuite l’utilisateur de ses informations d’identification. Si l’utilisateur a visité des sites qui sont encore reliés directement au FSI (au lieu d’Authenti-Canada), il propagera également la déconnexion à tous ces sites, progressivement, une à une.
- Le FSI redirige ensuite le navigateur (dans l’iframe) vers le Cadre
d’acceptation de la plateforme d’acceptation avec un message SAML
LogoutResponse
. Le Cadre d’acceptation traite ce message, puis envoie une réponse HTTP au navigateur. - La page de propagation de déconnexion comporte un gestionnaire d’événements d’erreur global qui sera déclenché si un type d’erreur se produit alors que tous les iframes propagent la déconnexion vers divers sites de manière asynchrone.
- Si l’une des iframes échoue ou s’interrompt, si la réponse de déconnexion SAML du FSI indique une erreur, alors le gestionnaire onerrorevent redirige le navigateur vers une page d’erreur, avertissant l’utilisateur qu’il ne peut pas être complètement déconnecté et lui recommandant de fermer son navigateur.
- Si toutes les iframes propagent avec succès la déconnexion vers leur site cible, le navigateur est redirigé vers la page d’accueil de déconnexion du site où l’utilisateur a initialement cliqué sur « Déconnexion » (l’URI post_déconnexion_redirect_uri de la partie de confiance).
Scénario 2 : Un utilisateur se déconnecte d’abord du FJGC
L’exemple suivant illustre comment une déconnexion unique est réalisée dans le cas où l’utilisateur clique sur un bouton de déconnexion sur un site de la partie de confiance qui est toujours connecté à l’un des services de justificatif d’identification de la FJGC (CléGC ou service de courtier de justificatif d’identité).
Le scénario commence lorsqu’un utilisateur clique sur un bouton de déconnexion sur le site de la partie de confiance qu’il utilise. Lorsque cela se produit :
- L’application de la partie de confiance déconnecte l’utilisateur localement
d’abord, puis redirige le navigateur vers le point terminal de déconnexion
unique SAML du FSI avec un message SAML
LogoutRequest
. - Si l’utilisateur a visité d’autres sites qui sont toujours connectés directement au FSI (au lieu de l’Authenti-Canada), il propagera d’abord la déconnexion de tous ces sites à l’aide de la déconnexion SAML dans le canal arrière (SOAP). Cela se fait un à un, pendant que l’utilisateur attend, ensuite il sera alors complètement déconnecté de la FJGC.
- Pour déconnecter l’utilisateur de l’Authenti-Canada, le FSI de la FJGC
redirige ensuite le navigateur vers le Cadre d’acceptation de
l’Authenti-Canada avec un message SAML
LogoutRequest
. - Le cadre d’acceptation crée ensuite une demande de déconnexion OpenID Connect et redirige le navigateur vers le point terminal de session du fournisseur d’OpenID de la plateforme d’acceptation.
- Si des parties de confiance qui participer à la session de la plateforme d’acceptation prennent en charge la déconnexion, la plateforme d’acceptation envoie d’abord un jeton de déconnexion à tous, via un POST HTTP à son URI de déconnexion en mode canal arrière enregistré. Cela déclenche les actions de déconnexion de chacun de ces PC. S’il y a plusieurs parties de confiance, ces demandes sont toutes envoyées simultanément, en parallèle.
- Une fois l’ouverture de session dans le canal arrière terminée, la plateforme
d’acceptation retourne une page de propagation de déconnexion
HTML. Cette page contient un
certain nombre d’éléments
iframe.
L’attribut
src
(source) de chaque élément iframe pointe vers l’URI de déconnexion du canal avant de l’un des sites de la partie de confiance où l’utilisateur s’est connecté pendant sa session en cours. Dans le diagramme, ces autres sites sont désignés comme « autres PC de l’OIDC ». L’attribut src de l’iframe final pointe vers un point terminal URI du Cadre d’acceptation de la plateforme d’acceptation. - Dès réception de la page de propagation, le navigateur commence à charger en parallèle l’intégralité de la valeur de _iframe_s, en envoyant de manière asynchrone une requête HTTP GET à l’URI src de chaque iframe.
- Lorsque les autres parties de confiance reçoivent ces demandes, elles déconnectent l’utilisateur localement, puis retournent une réponse HTTP au navigateur.
- La page de propagation de déconnexion comporte un gestionnaire d’événements d’erreur global qui sera déclenché si un type d’erreur se produit alors que tous les _iframe_s propagent la déconnexion vers divers sites de manière asynchrone.
- Si l’une des iframes échoue ou s’interrompt, le gestionnaire onerrorevent
redirige le navigateur vers le Cadre d’acceptation avec une requête HTTP
indiquant un problème de déconnexion.
- Le Cadre d’acceptation redirigera ensuite le navigateur vers le FSI avec un message SAML LogoutResponse portant un code de statut urn : oasis : names : tc : SAML : 2,0 : status : Responder.
- La FSI redirigera ensuite le navigateur vers sa propre PC avec un message
LogoutResponse portant un code de statut de haut niveau
urn:oasis:names:tc:SAML:2.0:status:Success
et un code de statut de second niveauurn:oasis:names:tc:SAML:2.0:status:PartialLogout
. - Cela entraînera l’affichage de la page d’erreur PC du SAML, avertissant l’utilisateur qu’il n’est peut-être pas complètement déconnecté et lui recommandant de fermer son navigateur.
- Si toutes les iframes propagent correctement la déconnexion vers leur site
cible, le code JavaScript redirige le navigateur vers le Cadre d’acceptation
avec une demande HTTP indiquant une déconnexion réussie.
- Le Cadre d’acceptation redirigera ensuite le navigateur vers le FSI
avec un message SAML
LogoutResponse
portant un code de statuturn:oasis:names:tc:SAML:2.0:status:Success
. - Le FJI redirigera ensuite le navigateur vers sa propre PC avec un message
LogoutResponse
portant un code de statut de haut niveauurn:oasis:names:tc:SAML:2.0:status:Success
et aucun code de statut de niveau supérieur. - Cela entraînera l’affichage de la page de déconnexion ou d’accueil habituelle de SAML PC.
- Le Cadre d’acceptation redirigera ensuite le navigateur vers le FSI
avec un message SAML