|
|
@@ -430,6 +430,102 @@ allowed_organizations = github google
|
|
|
|
|
|
<hr>
|
|
|
|
|
|
+## [auth.gitlab]
|
|
|
+
|
|
|
+You need to [create a GitLab OAuth
|
|
|
+application](https://docs.gitlab.com/ce/integration/oauth_provider.html).
|
|
|
+Choose a descriptive *Name*, and use the following *Redirect URI*:
|
|
|
+
|
|
|
+```
|
|
|
+https://grafana.example.com/login/gitlab
|
|
|
+```
|
|
|
+
|
|
|
+where `https://grafana.example.com` is the URL you use to connect to Grafana.
|
|
|
+Adjust it as needed if you don't use HTTPS or if you use a different port; for
|
|
|
+instance, if you access Grafana at `http://203.0.113.31:3000`, you should use
|
|
|
+
|
|
|
+```
|
|
|
+http://203.0.113.31:3000/login/gitlab
|
|
|
+```
|
|
|
+
|
|
|
+Finally, select *api* as the *Scope* and submit the form. You'll get an
|
|
|
+*Application Id* and a *Secret* in return; we'll call them
|
|
|
+`GITLAB_APPLICATION_ID` and `GITLAB_SECRET` respectively for the rest of this
|
|
|
+section.
|
|
|
+
|
|
|
+Add the following to your Grafana configuration file to enable GitLab
|
|
|
+authentication:
|
|
|
+
|
|
|
+```ini
|
|
|
+[auth.gitlab]
|
|
|
+enabled = false
|
|
|
+allow_sign_up = false
|
|
|
+client_id = GITLAB_APPLICATION_ID
|
|
|
+client_secret = GITLAB_SECRET
|
|
|
+scopes = api
|
|
|
+auth_url = https://gitlab.com/oauth/authorize
|
|
|
+token_url = https://gitlab.com/oauth/token
|
|
|
+api_url = https://gitlab.com/api/v4
|
|
|
+allowed_groups =
|
|
|
+```
|
|
|
+
|
|
|
+Restart the Grafana backend for your changes to take effect.
|
|
|
+
|
|
|
+If you use your own instance of GitLab instead of `gitlab.com`, adjust
|
|
|
+`auth_url`, `token_url` and `api_url` accordingly by replacing the `gitlab.com`
|
|
|
+hostname with your own.
|
|
|
+
|
|
|
+With `allow_sign_up` set to `false`, only existing users will be able to login
|
|
|
+using their GitLab account, but with `allow_sign_up` set to `true`, *any* user
|
|
|
+who can authenticate on GitLab will be able to login on your Grafana instance;
|
|
|
+if you use the public `gitlab.com`, it means anyone in the world would be able
|
|
|
+to login on your Grafana instance.
|
|
|
+
|
|
|
+You can can however limit access to only members of a given group or list of
|
|
|
+groups by setting the `allowed_groups` option.
|
|
|
+
|
|
|
+### allowed_groups
|
|
|
+
|
|
|
+To limit access to authenticated users that are members of one or more [GitLab
|
|
|
+groups](https://docs.gitlab.com/ce/user/group/index.html), set `allowed_groups`
|
|
|
+to a comma- or space-separated list of groups. For instance, if you want to
|
|
|
+only give access to members of the `example` group, set
|
|
|
+
|
|
|
+
|
|
|
+```ini
|
|
|
+allowed_groups = example
|
|
|
+```
|
|
|
+
|
|
|
+If you want to also give access to members of the subgroup `bar`, which is in
|
|
|
+the group `foo`, set
|
|
|
+
|
|
|
+```ini
|
|
|
+allowed_groups = example, foo/bar
|
|
|
+```
|
|
|
+
|
|
|
+Note that in GitLab, the group or subgroup name doesn't always match its
|
|
|
+display name, especially if the display name contains spaces or special
|
|
|
+characters. Make sure you always use the group or subgroup name as it appears
|
|
|
+in the URL of the group or subgroup.
|
|
|
+
|
|
|
+Here's a complete example with `alloed_sign_up` enabled, and access limited to
|
|
|
+the `example` and `foo/bar` groups:
|
|
|
+
|
|
|
+```ini
|
|
|
+[auth.gitlab]
|
|
|
+enabled = false
|
|
|
+allow_sign_up = true
|
|
|
+client_id = GITLAB_APPLICATION_ID
|
|
|
+client_secret = GITLAB_SECRET
|
|
|
+scopes = api
|
|
|
+auth_url = https://gitlab.com/oauth/authorize
|
|
|
+token_url = https://gitlab.com/oauth/token
|
|
|
+api_url = https://gitlab.com/api/v4
|
|
|
+allowed_groups = example, foo/bar
|
|
|
+```
|
|
|
+
|
|
|
+<hr>
|
|
|
+
|
|
|
## [auth.google]
|
|
|
|
|
|
First, you need to create a Google OAuth Client:
|