Authentification PSC

Authentification Pro Santé Connect

Pré-requis Administratif

Effectuer une demande de raccordement sur le site https://esante.gouv.fr/user/raccordement-pro-sante-connect en demandant selon vos besoins:

  • CIBA
  • CodeFlow

En commentaire de la demande rajouter le texte de demande de raccordement mTLS: cf paragraphe Demande d’accès mTLS / EDC de https://esante.gouv.fr/ens/offre/pro-sante-connect/documentation-technique#paragraph-id--13205

Une fois votre demande validée et après avoir généré le certificat p12 AUTH_CLI correspondant au clientId de votre demande raccordement à PSC, vous devez le charger dans le eProxy via la configuration ou le Back-office: voir certificats

CIBA

L’authentification CIBA se fait via un appel REST:

curl --request POST \
--url https://eproxy-test.devbox-sante.fr/oauth2/ciba \
--header 'content-type: application/json' \
--data '{
"bindingMessage": "99",
"channel": "CARD",
"clientId": "devcoop-devbox-sante-eproxy-edc-bas",
"nationalId": "899700726732"
}'
  • channel: CARD pour utiliser l’application CPS Gestion ou MOBILE pour le téléphone avec l’eCPS
  • clientId: client ID du certificat
  • bindingMessage: code aléatoire de 00 à 99 qui sera demandé lors de l’authentification sur la eCPS ou CPS Gestion et qui doit être affiché à l’utilisateur
  • nationalId: Identifiant national du professionnel

Le service REST possède un timeout de 120s, la réponse est renvoyée une fois l’authentification effectuée ou le délai dépassé avec dans ce cas un message d’erreur.

{
    "access_token": "xxx",
    "refresh_token": "xxx",
    "expires_at": "2026-04-21T13:32:22Z",
    "refresh_expires_at": "2026-04-21T13:46:22.118963555Z",
    "id_token": "xxx",
    "token_type": "Bearer",
    "scope": [
    "openid",
    "scope_all"
    ],
    "session_state": "xxx",
    "proxy_session_id": "xxx"
}

Code Flow

Code flow utilise un système de redirection pour l’authentification.

Exemple en javascript

window.location.href = environment.proxy_url + '/oauth2/codeflow/{clientId}?redirectUri=' + encodeURIComponent(window.location.origin + window.location.pathname);

une fois l’authentification effectuée, l’utilisateur est redirigé vers le redirectUri en lui ajoutant en paramètre un code:

{redirectUri}?code=xxxxx

Ce code permet ensuite de récupérer les access_token et refresh_token:

curl --request GET \
--url https://eproxy-test.devbox-sante.fr/oauth2/codeflow/token/{code} \
--header "content-type: application/json"

Exemple

Vous pouvez voir un exemple d’intégration des 2 méthodes sur notre démonstrateur : https://demo.devbox-sante.fr/

psc_demo.png