2022-05-26 10:06:25 -05:00
---
aliases:
2022-12-09 10:36:04 -06:00
- ../../auth/
- ../../auth/overview/
2022-06-02 11:57:22 -05:00
description: Learn about all the ways in which you can configure Grafana to authenticate
users.
2023-05-05 10:37:00 -05:00
labels:
products:
- cloud
- enterprise
2022-06-02 11:57:22 -05:00
title: Configure authentication
weight: 100
2022-05-26 10:06:25 -05:00
---
2018-08-13 07:28:41 -05:00
2022-06-02 11:57:22 -05:00
# Configure authentication
2018-08-13 07:28:41 -05:00
2020-05-15 16:33:37 -05:00
Grafana provides many ways to authenticate users. Some authentication integrations also enable syncing user permissions and org memberships.
2018-08-31 00:15:07 -05:00
2023-05-18 09:50:20 -05:00
The following table shows all supported authentication providers and the features available for them. [Team sync ]({{< relref "../configure-team-sync" >}} ) and [active sync ]({{< relref "./enhanced-ldap#active-ldap-synchronization" >}} ) are only available in Grafana Enterprise.
| Provider | Support | Role mapping | Team sync< br > _(Enterprise only)_ | Active sync< br > _(Enterprise only)_ |
| ------------------------------------------------- | :-----: | :----------: | :-------------------------------: | :---------------------------------: |
| [Auth Proxy ]({{< relref "./auth-proxy" >}} ) | v2.1+ | - | v6.3+ | - |
| [Azure AD OAuth ]({{< relref "./azuread" >}} ) | v6.7+ | v6.7+ | v6.7+ | - |
| [Generic OAuth ]({{< relref "./generic-oauth" >}} ) | v4.0+ | v6.5+ | - | - |
| [GitHub OAuth ]({{< relref "./github" >}} ) | v2.0+ | - | v6.3+ | - |
| [GitLab OAuth ]({{< relref "./gitlab" >}} ) | v5.3+ | - | v6.4+ | - |
| [Google OAuth ]({{< relref "./google" >}} ) | v2.0+ | - | - | - |
| [JWT ]({{< relref "./jwt" >}} ) | v8.0+ | - | - | - |
| [LDAP ]({{< relref "./ldap" >}} ) | v2.1+ | v2.1+ | v5.3+ | v6.3+ |
| [Okta OAuth ]({{< relref "./okta" >}} ) | v7.0+ | v7.0+ | v7.0+ | - |
| [SAML ]({{< relref "./saml" >}} ) (Enterprise only) | v6.3+ | v7.0+ | v7.0+ | - |
2018-08-31 00:15:07 -05:00
2018-09-06 05:11:56 -05:00
## Grafana Auth
2018-08-13 07:28:41 -05:00
2018-09-20 08:16:43 -05:00
Grafana of course has a built in user authentication system with password authentication enabled by default. You can
2023-03-14 10:50:49 -05:00
disable authentication by enabling anonymous access. You can also hide the login form and only allow login through an auth
2020-09-22 02:58:28 -05:00
provider (listed above). There are also options for allowing self sign up.
2018-08-13 07:28:41 -05:00
2019-02-05 14:10:56 -06:00
### Login and short-lived tokens
2019-02-13 12:52:27 -06:00
> The following applies when using Grafana's built in user authentication, LDAP (without Auth proxy) or OAuth integration.
2019-02-05 14:10:56 -06:00
2023-03-14 10:50:49 -05:00
Grafana uses short-lived tokens as a mechanism for verifying authenticated users.
These short-lived tokens are rotated on an interval specified by `token_rotation_interval_minutes` for active authenticated users.
2019-02-05 14:10:56 -06:00
2023-03-14 10:50:49 -05:00
Inactive authenticated users will remain logged in for a duration specified by `login_maximum_inactive_lifetime_duration` .
This means that a user can close a Grafana window and return before `now + login_maximum_inactive_lifetime_duration` to continue their session.
This is true as long as the time since last user login is less than `login_maximum_lifetime_duration` .
2019-02-05 14:10:56 -06:00
2019-07-05 01:20:21 -05:00
#### Remote logout
You can logout from other devices by removing login sessions from the bottom of your profile page. If you are
2023-03-14 10:50:49 -05:00
a Grafana admin user, you can also do the same for any user from the Server Admin / Edit User view.
2019-07-05 01:20:21 -05:00
## Settings
2019-02-05 14:10:56 -06:00
Example:
```bash
[auth]
# Login cookie name
login_cookie_name = grafana_session
2020-09-14 08:57:38 -05:00
# The maximum lifetime (duration) an authenticated user can be inactive before being required to login at next visit. Default is 7 days (7d). This setting should be expressed as a duration, e.g. 5m (minutes), 6h (hours), 10d (days), 2w (weeks), 1M (month). The lifetime resets at each successful token rotation (token_rotation_interval_minutes).
2020-11-09 14:26:49 -06:00
login_maximum_inactive_lifetime_duration =
2020-09-14 08:57:38 -05:00
# The maximum lifetime (duration) an authenticated user can be logged in since login time before being required to login. Default is 30 days (30d). This setting should be expressed as a duration, e.g. 5m (minutes), 6h (hours), 10d (days), 2w (weeks), 1M (month).
2020-11-09 14:26:49 -06:00
login_maximum_lifetime_duration =
2019-02-05 14:10:56 -06:00
2023-03-14 10:50:49 -05:00
# How often should auth tokens be rotated for authenticated users when being active. The default is every 10 minutes.
2019-02-05 14:10:56 -06:00
token_rotation_interval_minutes = 10
2019-06-26 01:47:03 -05:00
2020-05-18 15:56:23 -05:00
# The maximum lifetime (seconds) an API key can be used. If it is set all the API keys should have limited lifetime that is lower than this value.
2019-06-26 01:47:03 -05:00
api_key_max_seconds_to_live = -1
2019-02-05 14:10:56 -06:00
```
2018-09-20 08:16:43 -05:00
### Anonymous authentication
2018-09-06 05:11:56 -05:00
You can make Grafana accessible without any login required by enabling anonymous access in the configuration file.
Example:
```bash
[auth.anonymous]
enabled = true
# Organization name that should be used for unauthenticated users
org_name = Main Org.
# Role for unauthenticated users, other valid values are `Editor` and `Admin`
org_role = Viewer
```
2023-03-14 10:50:49 -05:00
If you change your organization name in the Grafana UI, this setting needs to be updated to match the new name.
2018-09-06 05:11:56 -05:00
### Basic authentication
2023-03-14 10:50:49 -05:00
Basic auth is enabled by default and works with the built-in Grafana user-password authentication system and LDAP
2018-10-06 10:09:41 -05:00
authentication integration.
2018-09-06 05:11:56 -05:00
To disable basic auth:
```bash
[auth.basic]
enabled = false
```
### Disable login form
2023-03-14 10:50:49 -05:00
Hide the Grafana login form using the below configuration settings.
2018-09-06 05:11:56 -05:00
```bash
[auth]
2018-05-28 09:15:31 -05:00
disable_login_form = true
```
### Automatic OAuth login
2023-01-19 08:53:02 -06:00
Set to true to attempt login with specific OAuth provider automatically, skipping the login screen.
This setting is ignored if multiple auth providers are configured to use auto login.
2018-05-28 09:15:31 -05:00
Defaults to `false` .
```bash
2023-01-19 08:53:02 -06:00
[auth.generic_oauth]
auto_login = true
2018-09-06 05:11:56 -05:00
```
2021-09-06 09:55:30 -05:00
### Avoid automatic OAuth login
2021-09-10 10:38:09 -05:00
To sign in with a username and password and avoid automatic OAuth login, add the `disableAutoLogin` parameter to your login URL.
For example: `grafana.example.com/login?disableAutoLogin` or `grafana.example.com/login?disableAutoLogin=true`
2021-09-06 09:55:30 -05:00
2018-09-06 05:11:56 -05:00
### Hide sign-out menu
2021-03-31 10:40:44 -05:00
Set the option detailed below to true to hide sign-out menu link. Useful if you use an auth proxy or JWT authentication.
2018-09-06 05:11:56 -05:00
```bash
[auth]
disable_signout_menu = true
```
2018-11-22 08:59:15 -06:00
### URL redirect after signing out
2020-05-18 15:56:23 -05:00
URL to redirect the user to after signing out from Grafana. This can for example be used to enable signout from OAuth provider.
2018-11-22 08:59:15 -06:00
```bash
[auth]
signout_redirect_url =
```
2022-10-11 17:57:27 -05:00
### Protected roles
2023-05-22 15:45:28 -05:00
{{% admonition type="note" %}}
Available in [Grafana Enterprise ]({{< relref "../../../introduction/grafana-enterprise" >}} ) and [Grafana Cloud Advanced ]({{< relref "../../../introduction/grafana-cloud" >}} ).
{{% /admonition %}}
2022-10-11 17:57:27 -05:00
2022-10-12 08:44:21 -05:00
By default, after you configure an authorization provider, Grafana will adopt existing users into the new authentication scheme. For example, if you have created a user with basic authentication having the login `jsmith@example.com` , then set up SAML authentication where `jsmith@example.com` is an account, the user's authentication type will be changed to SAML if they perform a SAML sign-in.
2022-10-11 17:57:27 -05:00
You can disable this user adoption for certain roles using the `protected_roles` property:
```bash
[auth.security]
protected_roles = server_admins org_admins
```
The value of `protected_roles` should be a list of roles to protect, separated by spaces. Valid roles are `viewers` , `editors` , `org_admins` , `server_admins` , and `all` (a superset of the other roles).