💼 Cas de l'authentification d'un rôle (dirigeant, élu, etc.)
Ce document décrit la manière d'utiliser ProConnect en tant que fournisseur OpenID afin de récupérer une identité de niveau « certifié dirigeant ». Nous nous appuyons sur les spécifications OpenID Connect Core 1.0.
Cette fonctionnalité est disponible de manière expérimentale et pourrait évoluer. Pour passer en production merci de prendre contact avec nous par mail à support.partenaires@mail.proconnect.gouv.fr.
1. Qu'est-ce que la certification dirigeant ?
Parmi les niveaux d'authentification disponibles, ProConnect propose notamment le niveau de certification suivant :
certification-dirigeant
: prouve le statut de dirigeant au sein d'une organisation.
Cette certification s'obtient en demandant explicitement un niveau de garantie (acr) spécifique dans le cadre d'un flux OpenID Connect.
2. Configuration du paramètre claims
Pour demander à l'OP ProConnect de retourner un ID token contenant l'acr du niveau « certification-dirigeant », vous devez inclure le paramètre claims
dans la requête à l'endpoint d'autorisation.
Voici un exemple au format JSON à inclure :
{
"claims": {
"id_token": {
"acr": {
"essential": true,
"value": "https://proconnect.gouv.fr/assurance/certification-dirigeant"
}
}
}
}
L'attribut essential: true
indique que la valeur spécifiée pour acr
est obligatoire pour votre service. La propriété value
doit être égale à l'URL qui identifie le niveau d'assurance souhaité, dans cet exemple :
"https://proconnect.gouv.fr/assurance/certification-dirigeant"
3. Envoi de la requête d'autorisation
Selon votre bibliothèque OpenID Connect (client OpenID) ou votre framework, vous devrez :
- Inclure le bloc
claims
dans les paramètres de l'URL/authorize
. - Encoder correctement la valeur JSON dans le paramètre
claims
(URL-encoding).
Par exemple, une requête d'autorisation (simplifiée) pourrait ressembler à :
GET /authorize?
response_type=code&
client_id=VOTRE_CLIENT_ID&
scope=openid&
redirect_uri=https%3A%2F%2Fvotre-application.fr%2Fcallback&
claims=%7B%22id_token%22%3A%7B%22acr%22%3A%7B%22essential%22%3Atrue%2C%22value%22%3A%22https%3A%2F%2Fproconnect.gouv.fr%2Fassurance%2Fcertification-dirigeant%22%7D%7D%7D
Ici, claims=%7B%22id_token%22%3A...
correspond à la version encodée URL du JSON décrit plus haut.
4. Traitement par ProConnect
Lorsque ProConnect traite votre demande avec le paramètre acr
requis, vous recevrez un ID token contenant le paramètre acr
correspondant :
{
"iss": "https://proconnect.gouv.fr",
"aud": "VOTRE_CLIENT_ID",
"exp": 1700000000,
"iat": 1699999400,
"sub": "248289761001",
"acr": "https://proconnect.gouv.fr/assurance/certification-dirigeant"
}
Il est IMPÉRATIF de vérifier la présence et la valeur du paramètre acr
dans l'ID token reçu. Cette vérification doit être effectuée côté serveur avant d'accorder l'accès aux fonctionnalités réservées aux dirigeants :
Ne jamais se fier uniquement à la présence d'autres attributs dans l'ID token. La vérification explicite de l'acr
est le seul moyen de s'assurer que l'utilisateur possède le niveau de certification requis.