mirror of
https://github.com/grafana/grafana.git
synced 2025-07-30 05:53:15 +08:00
docs: document GitLab authentication backend
This commit is contained in:
@ -430,6 +430,102 @@ allowed_organizations = github google
|
|||||||
|
|
||||||
<hr>
|
<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]
|
## [auth.google]
|
||||||
|
|
||||||
First, you need to create a Google OAuth Client:
|
First, you need to create a Google OAuth Client:
|
||||||
|
Reference in New Issue
Block a user