SAML-based authentication

SAML authentication is only available on Pro and Enterprise plans (both self-hosted and on Metabase Cloud).

The open source edition of Metabase includes the option to set up with Google Sign-in or LDAP, but the some plans let you connect your SAML- or JWT-based SSO. Integrating your SSO with Metabase allows you to:

  • automatically pass user attributes from your SSO to Metabase in order to power data sandboxes
  • let your users access Metabase without re-authenticating.

Turning on SAML-based SSO

Before beginning your SAML set-up, make sure you know the password for your Metabase admin account. If anything becomes misconfigured during the set-up process, an “Admin backup login” option on the sign-in screen is available.

To get started, head over to the Settings section of the Admin Panel, then click on the Authentication tab. Click the Configure button in the SAML section of the Authentication page, and you’ll see this form:

SAML form

At the top, make sure to click the toggle to enable SAML authentication, otherwise things won’t work even if all of your settings are right.

The form itself is broken up into three parts:

  1. Metabase info that you’ll have to input into your identity provider (IdP).
  2. IdP info that you’ll need to tell Metabase about.
  3. Signing SSO requests (optional).

Setting up SAML with your IdP

First you’ll need to make sure things are configured correctly with your IdP. Each IdP handles SAML setup differently.

We’ve written up some guides for the most common providers:

If you don’t see your IdP listed here:

Generic SAML configuration

The top portion of the SAML form in Metabase has the information you’ll need to fill out your IdP’s SAML form, with buttons to make copying the information easy.

However, the names of the fields in the Metabase SAML form won’t always match the names used by your IdP. We’ve provided a description of each field below to help you map information from one place to another.

URL the IdP should redirect back to

The redirect URL is the web address that people will be sent to after signing in with your IdP. To redirect people to your Metabase, your redirect URL should be your Metabase Site URL, with /auth/sso at the end.

For example, if your Metabase Site URL is https://metabase.yourcompany.com, you’ll use https://metabase.yourcompany.com/auth/sso as the redirect URL in your IdP’s SAML form.

Different IdPs use different names for the redirect URL. Here are some common examples:

Provider Name
Auth0 Application Callback URL
Okta Single Sign On URL
OneLogin ACS (Consumer) URL

User attributes

Metabase will automatically log in people who’ve been authenticated by your SAML identity provider. In order to do so, the first assertion returned in the identity provider’s SAML response must contain attributes for each person’s first name, last name, and email.

Most IdPs already include these assertions by default, but some (such as Okta) must be configured to include them.

Generally you’ll need to paste these user attributes (first name, last name, and email) into fields labelled “Name”, “Attributes” or “Parameters”.

End-users should not be able to edit the email address attribute. Your IdP will pass the email address attribute to Metabase in order to log people into their Metabase accounts (or to create an account on the first login). If a person can change the email address attribute, they’ll potentially be able to access Metabase accounts other than their own.

Settings for signing SSO requests (optional)

These are additional settings you can fill in to sign SSO requests to ensure they don’t get tampered with.

Enabling SAML authentication in Metabase

Metabase will now need to know some things about your IdP. Here’s a breakdown of each of the settings:

SAML Identity Provider URL

Metabase will redirect login requests to the Identity Provider URL, where people will go to log in with SSO.

Different IdPs use different names for the Identity Provider URL. Here are some common examples:

Provider Name
Auth0 Identity Provider Login URL
Okta Identity Provider Single-Sign On URL
OneLogin SAML 2.0 Endpoint (HTTP)

SAML Identity Provider Issuer

This is a unique identifier for the IdP. You might also see it referred to as “Entity ID” or “Issuer”. Assertions from the IdP will contain this information, and Metabase will verify that it matches the value you set.

We recommend that you set this value to make your SAML configuration more secure.

Provider Name
Auth0 Identity Provider Login URL
Okta Identity Provider Issuer
OneLogin Issuer URL

SAML Identity Provider Certificate

This is an encoded certificate that Metabase will use when connecting to the IdP URI. The certificate will look like a big blob of text that you’ll want to copy and paste carefully — the spacing is important!

Your IdP might have you download this certificate as a file (usually .cer or .pem), which you’ll then need to open up in a text editor in order to copy the contents to then paste into the box in Metabase.

Note that your certificate text may include header and footer comments that look like -----BEGIN CERTIFICATE----- and -----END CERTIFICATE-----. These comments should be included when pasting your certificate text into Metabase.

Provider Name
Auth0 Signing Certificate
Okta X.509 Certificate
OneLogin X.509 Certificate

Settings for signing SSO requests (optional)

These are additional settings you can fill in to sign SSO requests to ensure they don’t get tampered with. In addition, if your IdP encrypts SAML responses, you’ll need to ensure this section is filled out.

Important note: If you change any of these settings, either during initial setup or after editing an existing value, you will need to restart Metabase due to the way the keystore file is read.

SAML keystore path: the absolute path to the keystore file to use for signing SAML requests.

SAML keystore password: if it wasn’t already self-evident, this is just the password for opening the keystore.

SAML keystore alias: the alias for the key that Metabase should use for signing SAML requests.

Synchronizing group membership with your IdP

This setting allows you to assign users to Metabase groups based on an attribute of your users in your IdP. Please note that this may not correlate to group functionality provided by your IdP — you may need to create a separate attribute on your users to set their Metabase group, like metabaseGroups.

First, you will need to create a SAML user attribute that you will use to indicate which Metabase groups the user should be a part of. This created user attribute can be a XML string or a list of XML strings. Different IdPs have different ways of handling this, but you will likely need to edit your user profiles or find a way to map a user’s groups to a list of Metabase group names.

Configuring the group schema in Metabase

Once you’ve gotten everything set up in your SAML provider, there are just a few simple steps on the Metabase side.

To start, make sure the toggle to synchronize group memberships is set to “Enabled.” Then, click Edit Mappings > Create a Mapping. Enter in the name of one of the groups you entered as your metabaseGroups attribute values, then click the Add button. Next click the dropdown that appears under the Groups heading to select the Metabase group(s) that users with this particular metabaseGroups value should be added to. Then click Save.

After that, type in the name of the user attribute you added in your SAML provider. In this case, we told Okta that the metabaseGroups attribute should be named MetabaseGroupName, so that’s what we’ll enter in the Group Attribute Name field in Metabase.

Group schema

Disabling password log-in

Once you have configured SAML authentication, you can choose to disable the option for users to log in via email and password. To do this, return to the main Authentication settings page and scroll to the bottom. A toggle will now be visible allowing you to disable password authentication.

Password disable

New user notification emails

When users log in to Metabase for the first time via SSO, this will automatically create a Metabase account for them, which will trigger an email notification to Metabase administrators. If you don’t want these notifications to be sent, you can turn this toggle off at the bottom of the Authentication page.

Example code using SAML

You can find example code that uses SAML authentication in the SSO examples repository.

Troubleshooting SAML issues

Thanks for your feedback!

See something that needs fixing? Propose a change.