Jeton d'accès à l'API front

Les points de terminaison de compte de l'API front (/fapi/v1/me…, /fapi/v1/verifications… et /fapi/v1/organizations…) acceptent deux types d'authentification :

Obtenir le jeton

Demandez au point de terminaison de jetons l'API front en tant que ressource (RFC 8707), lors d'un échange de code d'autorisation ou d'un renouvellement :

POST /oauth2/token
Content-Type: application/x-www-form-urlencoded
DPoP: <proof>

grant_type=refresh_token&refresh_token=<refresh token>&client_id=app_01j9...&resource=https%3A%2F%2Facme.keenauth.app%2Ffapi

La valeur correspond à l'émetteur de l'environnement suivi de /fapi. La requête n'est acceptée que lorsque :

Seul le jeton d'accès change. Son audience est <issuer>/fapi, il ne porte que les autorisations OpenID de l'octroi (openid, profile, email, phone, offline_access), il a la même durée de vie qu'un jeton userinfo, et il est lié à la clé de la preuve. L'octroi lui-même, son jeton de renouvellement et ses autorisations restent inchangés ; un renouvellement fait tourner le jeton de renouvellement comme d'habitude.

Appeler les points de terminaison de compte

Envoyez le jeton avec le schéma DPoP et une nouvelle preuve pour chaque requête (RFC 9449) :

GET /fapi/v1/me/sessions
Idp-Client: <SDK identifier>
Authorization: DPoP <access token>
DPoP: <proof with htm, htu, iat, jti, ath>

Erreurs

Statut Code Quand
400 malformed_request Plus d'un en-tête Authorization, ou un en-tête qui n'est pas DPoP <token>.
401 unauthenticated Le jeton est invalide, expiré ou révoqué, a une autre audience, n'est pas lié à DPoP, ou sa session ou son application n'est plus active.
401 invalid_dpop_proof La preuve est invalide ou a été signée avec une autre clé.
401 use_dpop_nonce Envoyez une nouvelle preuve avec le nonce de l'en-tête DPoP-Nonce.
403 origin_not_allowed L'origine de la page ne fait pas partie des origines web autorisées de l'application.

Chaque 401 contient un challenge WWW-Authenticate: DPoP ….