Authentification PSC
Pour Pro Santé Connect (PSC), il existe 2 cinématiques pour se connecter:
- CIBA
- CodeFlow
Pré-requis:
Pour s’authentifier sur PSC, le eProxy doit posséder un certificat p12 AUTH_CLI correspondant au clientId de votre demande raccordement à PSC https://esante.gouv.fr/user/raccordement-pro-sante-connect
Ce certificat se charge 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/
