Frappe Framework
OAuth2
Une instance peut jouer les trois rôles OAuth2. Les jetons, les clients et les applications connectées ont chacun leur DocType.
Trois rôles
Frappe s’appuie sur oauthlib. Une instance peut être :
- serveur de ressource : les données des DocTypes ;
- serveur d’autorisation : il émet les jetons ;
- client : une application qui demande une ressource.
DocTypes
Commun : OAuth Settings, qui règle des fonctions des trois rôles.
Serveur d’autorisation : OAuth Client (clients enregistrés), OAuth Bearer Token (jetons émis), OAuth Authorization Code (codes échangés contre un jeton), OAuth Provider Settings. Ce dernier, qui permettait de sauter l’autorisation, est marqué déprécié : utiliser OAuth Settings.
Client : Connected App (serveurs d’autorisation auprès desquels l’instance est cliente, par exemple un Drive), Social Key Login (même idée, pour se connecter à l’instance, par exemple Login with Google), Token Cache (jetons reçus en accédant à une Connected App).
Fonctions en plus d’oauthlib
- enregistrement dynamique de client, RFC 7591 ;
- découverte des métadonnées du serveur d’autorisation, RFC 8414 ;
- découverte des métadonnées du serveur de ressource, RFC 9728.
Les guides liés : Configurer OAuth 2, OAuth 2, Authentification par jeton, Utiliser Frappe comme service OAuth, Social Login Key, Connected App. La source prévient que certaines de ces pages peuvent être datées, et conseille de vérifier le code en cas de doute.
OAuth Settings
DocType Single. La source recommande d’ouvrir la fiche : chaque champ a une aide. On y active :
- le contrôle d’autorisation quand un jeton est déjà actif, champ Skip Authorization. La note dit de le laisser décoché en production ;
- Show Auth Server Metadata ;
- Enable Dynamic Client Registration ;
- Show Protected Resource Metadata.
Les autres champs, section Resource, ne servent qu’aux réponses sur /.well-known/oauth-protected-resource.
Les clients publics, par exemple une SPA, sont restreints par CORS. Pour des clients de confiance, leurs noms d’hôte se ajoutent à Allowed Public Client Origins.
Point d’attention
Skip Authorization doit rester décoché en production, d’après la note du champ. OAuth Provider Settings ne se règle plus : le remplacement est OAuth Settings.
