Authentification PSC
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/
