Sécurisation de la couche transport API REST Pro Santé Connectée
1.2.0 - ci-build France flag

This page is part of the Sécurisation de la couche transport API REST (v1.2.0: Release) based on FHIR (HL7® FHIR® Standard) R4. This is the current published version. For a full list of available versions, see the Directory of published versions

Appel d'une API ProSantéConnectée depuis une application web - cas d'erreurs

Cas d’erreur 1a : un utilisateur déjà Pro Santé Connecté a besoin du Refresh Token PSC pour poursuivre sa navigation et accéder à une ressource

Dans ce cas, l’utilisateur est déjà authentifié auprès de Pro Santé Connect et souhaite accéder à une ressource d’un service cible, mais son subject_token a expiré. Afin de poursuivre son parcours, le fournisseur de services a besoin de récupérer un nouveau subject_token grâce à son Refresh Token PSC encore valide (<2 min).

Ici, lorsque le serveur d’autorisation effectue une introspection auprès de PSC pour vérifier la validité des jetons, PSC détecte que le subject_token n’est plus valide (durée de validité limitée à 2 minutes [4] ). Le fournisseur de services effectue alors une demande de renouvellement de jetons auprès de Pro Santé Connect. Il utilise son Refresh Token [4] encore valide (<30 minutes) afin d’obtenir un nouveau subject_token.

Une fois le subject_token récupéré, le serveur d’application relance une nouvelle cinématique OAuth 2.0.

Systeme appelant / initiateurSysteme cibleNavigateurNavigateurFournisseur de services et proxy LPS/APIFournisseur de services et proxy LPS/APIProSanteConnectProSanteConnectServeur d'autorisationServeur d'autorisationService cibleService cible1. demande d'acces a un nouveau service (user deja Connecte sur PSC)OAUTH2.0 flow2. subject_token(parametre) + Client_ID_AS(header) + scope(parametre)3. subject_token (introspection)subject_token non valide4. erreur + URL authentification PSC5. erreur + URL authentification PSC6. Refresh Token PSC7. subject_tokenOAUTH2.0 flow8. subject_token(parametre) + Client_ID_AS(header) + scope(parametre)9. subject_token (introspection)OKControle d'acces (Client ID_AS x scope)10. access_token11. access_token + acces aux donnees

Cas d’erreur 1b : La session PSC est expirée, l’utilisateur doit se réauthentifier sur la mire d’authentification

L’utilisateur est déjà authentifié auprès de Pro Santé Connect et souhaite accéder à une ressource d’un service cible mais sa session a expiré (cookie de session > 4 heures ou 30 min d’inactivité) [4]. Par conséquent, son subject_token ainsi que son Refresh Token PSC sont expirés (subject_token > 2min et Refresh Token > 30min).

Dans la navigation, si l’utilisateur a besoin des ressources nécessitant d’être connecté à PSC, le fournisseur de services va vérifier que la session est valide auprès de PSC via cookie de session. Lors du contrôle du cookie de session par PSC, ce dernier ne valide pas son cookie de session car il a expiré (>4 heures). PSC renvoie une réponse d’erreur et l’URL de sa mire d’authentification afin que le fournisseur de services redirige l’utilisateur vers PSC pour s’authentifier à nouveau.

Systeme appelant / initiateurSysteme cibleNavigateurNavigateurFournisseur de Services et proxy LSP/APIFournisseur de Services et proxy LSP/APIPro Sante ConnectPro Sante ConnectServeur d'autorisationServeur d'autorisationService cibleService cible1. acces initial avec cookie de session (user deja PSC Connecte)Authentification Pro Sante Connect2 Demande de subject_token + cookie de sessioncontrole du cookie de session3. erreur4. Redirection vers PSC5. client_id, scope "all" PSC6. authentification use (MIE PSC)

Cas d’usage 1b.2 : Tentative d’accès aux ressources avec un subject_token expiré, suivi d’une tentative de nouvellement avec Refresh Token PSC lui aussi expiré, puis redirection vers la mire authentification - Application Web

Lors de l’introspection du subject_token, PSC ne le valide pas car il a expiré. PSC renvoie une réponse d’erreur au fournisseur de services qui tente de renouveler son subject_token avec son Refresh Token PSC. Cependant, ce dernier est lui aussi expiré, amenant PSC à rediriger le PS vers l’URL de la mire d’authentification PSC pour s’authentifier de nouveau.

Systeme appelant / initiateurSysteme cibleNavigateurNavigateurFournisseur de services et proxy LPS/APIFournisseur de services et proxy LPS/APIProSanteConnectProSanteConnectServeur d'autorisationServeur d'autorisationService cibleService cible1. acces initial avec cookie de session (user deja Connecte sur PSC)OAUTH2.0 flow2. subject_token(parametre) + Client ID_AS(header) + scope(parametre)3. subject_token (introspection)subject_token non valide4. erreur5. erreur6. Refresh Token PSCRefresh Token PSC ou cookie de session non valide7. URL authentification PSC8. Redirect to PSC9. client_id, scope "all" PSC10. authentification user (CPS/eCPS)