Grafana

image0

Presentation

Grafana is an Open Source dashboard for monitoring databases such as Prometheus, Graphite or Elasticsearch

Grafana offers social login through a generic OAuth 2 connector. Thankfully, it is close enough to OpenID Connect to work well with LemonLDAP::NG

Pre-requisites

Grafana configuration

You should start by following the generic OAuth2 documentation provided by Grafana: https://grafana.com/docs/grafana/latest/auth/generic-oauth/

Your configuration file will have to look something like this:

[auth.generic_oauth]
enabled = true
client_id = CHOOSE_A_CLIENT_ID
client_secret = CHOOSE_A_CLIENT_SECRET
scopes = openid email profile
auth_url = https://auth.example.com/oauth2/authorize
token_url = https://auth.example.com/oauth2/token
api_url = https://auth.example.com/oauth2/userinfo
allow_sign_up = true
name = LemonLDAP::NG
send_client_credentials_via_post = false
email_attribute_name = email

LL:NG

Make sure you have already enabled OpenID Connect on your LemonLDAP::NG server

Then, add a Relaying Party with the following configuration:

  • Options » Authentification » Client ID : same as client_id above

  • Options » Authentification » Client Secret : same as client_secret above

  • Options » Allowed redirection address : https://<grafana domain>/login/generic_oauth

If you want to transmit extra user attributes to Grafana, you also need to configure:

  • Scope values content »

    • add a key named profile to override the default claim list

    • set a value of name username display_name upn

  • Exported Attributes (not all of them are mandatory)

    • replace the existing keys with the following 5 new keys:

      • name

      • username

      • display_name

      • upn

      • email

    • map them to your corresponding LemonLDAP::NG session attribute

Tip

To trigger OIDC authentication directly, you can register grafana in application menu and set as URL: https://<grafana domain>/login/generic_oauth