Documentation Frappe Framework

Frappe Framework

Utiliser Frappe comme service OAuth

Grafana s’installe sur un système Debian, Frappe sur le même serveur, en Docker ou sur Frappe Cloud. Le bouton Sign in with Frappe apparaît après redémarrage.

2 min de lectureMis à jour le Source : docs.frappe.io

Rôle

Le guide branche une application tierce, ici Grafana, sur l’OAuth de Frappe, sans autre code que des fichiers de configuration. Le bureau OAuth est aussi décrit dans OAuth2.

Il faut un système Debian (Debian, Ubuntu, Pop OS) et soit un compte Frappe Cloud, soit un site Frappe, plus simple s’il est sur le même serveur.

Installer

L’installation du framework renvoie vers la documentation Debian et Ubuntu, vers frappe_docker, ou vers Frappe Cloud. Grafana suit le guide v9, sur Debian. Puis :

terminal
systemctl enable grafana-server.service
systemctl start grafana-server
systemctl status grafana-server

Client OAuth

Après la prise en main du site, AwesomeBar ou Ctrl + G, « OAuth Client », New OAuth Client. Renseigner App Name (Grafana), les portées OpenID et les Redirect URIs. L’URI Grafana est <grafana-url>/login/generic_oauth. Sans nom de domaine, l’adresse IP remplace <grafana-url>. L’enregistrement produit App Client ID et App Client Secret.

grafana.ini

Les fichiers sont dans /etc/grafana. On édite grafana.ini. Le texte dit d’ouvrir la section [oauth.generic_oauth]. Le bloc publié est :

code
[auth.generic_oauth]
enabled = True
name = Frappe
client_id = ""
client_secret = ""
scopes = openid all
auth_url = <frappe_site_url>/api/method/frappe.integrations.oauth2.authorize
token_url = <frappe_site_url>/api/method/frappe.integrations.oauth2.get_token
api_url = <frappe_site_url>/api/method/frappe.integrations.oauth2.openid_profile

Derrière un reverse proxy, domaine et root_url se posent dans la section server. Puis sudo systemctl restart grafana-server.service. La page de connexion montre Sign in with Frappe. Les identifiants sont ceux du site Frappe.

Point d’attention

Le titre de section dans la prose et celui du fichier ini ne sont pas les mêmes : oauth.generic_oauth d’un côté, auth.generic_oauth de l’autre. client_id et client_secret restent vides dans l’exemple : ce sont les valeurs générées par l’OAuth Client.