This is a simple example of Grafana Generic OAuth implementation and auto login to Grafana dashboard from your application using PHP.
Clone this repository git clone https://github.com/nbayramberdiyev/grafana-generic-oauth.git.
I assumed that src is your project's root directory and auth files are located at http://foo.bar/oauth/ as you'll see in the next step.
Edit Grafana configuration file that is located at /etc/grafana/grafana.ini on Ubuntu / Debian, /usr/local/etc/grafana/grafana.ini on MAC, <GRAFANA_PROJECT_FOLDER>/conf/custom.ini on Windows.
Uncomment these lines and enter your client_id, client_secret, auth_url, token_url, api_url:
#################################### Generic OAuth ##########################
[auth.generic_oauth]
;enabled = true
;name = OAuth
;allow_sign_up = false
;client_id = some_id
;client_secret = some_secret
;scopes = user:email,read:org
;auth_url =
;token_url =
;api_url =
Like so:
#################################### Generic OAuth ##########################
[auth.generic_oauth]
enabled = true
name = OAuth
allow_sign_up = false
client_id = YOUR_APP_CLIENT_ID
client_secret = YOUR_APP_CLIENT_SECRET
scopes = user:email,read:org
auth_url = http://foo.bar/oauth/auth.php
token_url = http://foo.bar/oauth/token.php
api_url = http://foo.bar/oauth/user.php
The "Sign in with OAuth" button will appear in Grafana login page.
If you want users login automatically, you'll need to place custom.js in /usr/share/grafana/public/build/index.html (Ubuntu / Debian) at the bottom of <body> tag.
You can now put a link to Grafana in your application which provides the ability to pass a user from your dashboard across to Grafana.
Restart Grafana server.
sudo service grafana-server restart(Ubuntu / Debian)brew services restart grafana(MAC)
If I can be of assistance, please do not hesitate to contact me.