Frappe Framework
OpenID Connect et connexion sociale Frappe
Le scope openid ajoute un id_token signé. Le serveur qui porte les comptes devient fournisseur d’identité, l’autre affiche l’icône Frappe.
OpenID Connect
Frappe utilise le standard OpenID Connect pour authentifier. Pour recevoir id_token avec access_token, passez openid comme valeur de scope dans la demande d’autorisation.
Si le scope est openid, la réponse JSON du jeton d’accès contient aussi un JSON Web Token id_token, signé en HS256 avec le secret client. Le jeton décodé contient at_hash. L’exemple de jeton Bearer montre token_type Bearer, id_token, access_token, scope openid, expires_in 3600 et refresh_token.
Deux serveurs
Le serveur principal héberge les utilisateurs, par exemple https://frappe.io. Dans Setup > Integrations > Social Login Keys, saisissez cette adresse dans Frappe Server URL. Les autres serveurs qui s’authentifient ici répètent cette URL : c’est le fournisseur d’identité. Ajoutez autant de clients OAuth que nécessaire. Pour un seul serveur d’application, un seul client suffit.
Sur le serveur d’application, dans le même écran, renseignez Frappe Client ID et Frappe Client Secret du client créé sur le serveur principal, et gardez Frappe Server URL à https://frappe.io. L’icône Frappe apparaît sur la page de connexion. Elle connecte avec un compte du fournisseur d’identité.
Si Skip Authorization est coché à l’enregistrement du client, la page autoriser ou refuser n’apparaît pas. La source le destine aux applications internes d’une organisation, pour un parcours sans étape.
La création du client est aussi dans Configurer OAuth 2.
Parcours publié
- Sur le fournisseur d’identité : se connecter, ajouter le client OAuth, fixer l’URL du serveur.
- Sur le serveur d’application : Client ID, Client Secret, et l’URL du serveur principal, là où les identités sont stockées. L’écran de connexion propose Frappe.
- Redirection vers le fournisseur : connexion, puis confirmation d’accès.
- Retour sur le serveur d’application, connecté avec l’identité du fournisseur.
Point d’attention
Frappe Server URL doit être la même des deux côtés, celle du serveur qui porte les comptes. Skip Authorization retire la confirmation d’accès. Le id_token de l’exemple n’est émis que si le scope demandé est openid.
