基于SAML的认证

SAML 身份验证仅在 Pro企业 计划(自托管和 Metabase Cloud 上)上可用。

将您的 SSO 集成到 Metabase 可以让您

  • 当有人登录到 Metabase 时,提供 Metabase 账户。
  • 自动将用户属性从您的 SSO 传递到 Metabase,以支持 数据沙箱
  • 让人们无需重新验证即可访问 Metabase。

确认您的 Metabase 管理员账户密码

在设置 SAML 之前,请确保您知道您的 Metabase 管理员账户密码。如果在设置过程中遇到任何问题,您可以通过登录屏幕上的“管理员备份登录”选项进行登录。

在 Metabase 中设置与您的 IdP 的 SAML

一旦您已 确认了您的 Metabase 管理员账户密码,请转到管理员面板的“设置”部分,然后单击“身份验证”选项卡。在身份验证页面上的 SAML 部分中,单击“设置”按钮,您将看到此表单

SAML form

表单包括三个部分

  1. 您必须输入到您的身份提供者 (IdP) 中的 Metabase 信息.
  2. 您需要告诉 Metabase 的 IdP 信息.
  3. 签名 SSO 请求(可选).

SAML 指南

首先,您需要确保您的 IdP 中的设置正确。每个 IdP 处理 SAML 设置的方式都不同。

我们已经为最常见的服务提供商编写了一些指南

如果您在此处看不到您的 IdP

  • 请参阅您的 IdP 的 SAML 配置参考文档。您将寻找类似这样的内容 OneLogin SAML 指南
  • 使用在 Metabase SAML 表单上找到的信息,填写您的 IdP 的 SAML 表单。
  • 有关更多信息,请参阅下一节关于 通用 SAML 配置

用户预配

默认情况下,Metabase 将为尚未拥有 Metabase 账户但能够通过 SAML SSO 登录的人员创建账户。

如果您已设置使用SCIM的用户配置,您可能需要关闭此设置,以便Metabase不会自动为任何成功认证的用户创建新账户,因为您可能希望使用SCIM来决定谁可以在Metabase中创建账户。

通用的SAML配置

Metabase中SAML表单的上半部分包含您需要填写您的IdP SAML表单的信息,并带有按钮以便轻松复制信息。

Metabase SAML表单中的字段名称不一定与您的IdP使用的名称相同。我们已提供每个字段的描述,以帮助您将信息从一个地方映射到另一个地方。

IdP应重定向回的URL

重定向URL是用户在通过您的IdP登录后将被发送到的网页地址。要将用户重定向到您的Metabase,您的重定向URL应该是您的Metabase 站点URL,并在末尾加上/auth/sso

例如,如果您的Metabase站点URL是https://metabase.yourcompany.com,您将使用

https://metabase.yourcompany.com/auth/sso

作为IdP SAML表单中的重定向URL。

不同的IdP对重定向URL的命名可能不同。以下是一些常见的示例

提供者 名称
Auth0 应用程序回调URL
Okta 单点登录URL
OneLogin ACS (消费者) URL

用户属性

Metabase将自动登录经您的SAML身份提供者认证的用户。为此,身份提供者SAML响应中返回的第一个断言必须包含每个人员的姓氏、名字和电子邮件地址的属性。

大多数IdP默认已包含这些断言,但一些(如Okta)必须配置为包含它们。

通常您需要将这些用户属性(名字、姓氏和电子邮件地址)粘贴到标记为“名称”、“属性”或“参数”的字段中。

如果您允许人们编辑他们的电子邮件地址:请确保更新Metabase中相应的账户电子邮件。保持电子邮件地址同步将保护人们免于失去对账户的访问权限。

签名SSO请求的设置(可选)

这是您可以填写的附加设置,用于在签名SSO请求以确保它们不被篡改。

在Metabase中启用SAML身份验证

现在Metabase需要了解有关您的IdP的一些信息。以下是对每个设置的说明

SAML身份提供者URL

Metabase将登录请求重定向到身份提供者URL,人们将在那里使用SSO登录。

不同的IdP对身份提供者URL的命名可能不同。以下是一些常见的示例

提供者 名称
Auth0 身份提供者登录URL
Okta 身份提供者单点登录URL
OneLogin SAML 2.0端点(HTTP)

SAML身份提供者发行者

SAML身份提供者发行者是一个用于IdP的唯一标识符。您也可能看到“发行者”被称为“实体ID”。IdP的断言将包含此信息,Metabase将验证发行者是否与您设置的值匹配。

我们建议您设置此值以使您的SAML配置更加安全。

提供者 名称
Auth0 身份提供者登录URL
Okta 身份提供者发行者
OneLogin 发行者URL

SAML身份提供者证书

SAML身份提供者证书是Metabase在连接到IdP URI时将使用的编码证书。证书看起来像一大堆文本,您需要仔细复制和粘贴——间隔很重要!

您的身份提供者(IdP)可能要求您下载此证书作为文件(通常是 .cer.pem),然后您需要将其打开在文本编辑器中,以便将内容复制粘贴到Metabase的框中。

请注意,您的证书文本可能包含类似于 -----BEGIN CERTIFICATE----------END CERTIFICATE----- 的头部和尾部注释。这些注释在将证书文本粘贴到Metabase时应该包含在内。

提供者 名称
Auth0 签名证书
Okta X.509证书
OneLogin X.509证书

签名SSO请求的设置(可选)

为了对请求进行签名以确保它们不被篡改,您需要提供额外的设置。

如果您的IdP加密SAML响应,您需要确保此部分已填写。

如果您更改了这些设置,无论是在初始设置期间还是在编辑现有值之后,由于密钥库文件的读取方式,您需要重新启动Metabase。

  • SAML密钥库路径:用于签名SAML请求的密钥库文件的绝对路径。
  • SAML密钥库密码:打开密钥库的神奇咒语。
  • SAML密钥库别名:Metabase用于签名SAML请求的密钥别名。

SAML单点登出(SLO)

Metabase支持SAML的单点登出(SLO)。

SLO端点:/auth/sso/handle_slo

因此,如果您的Metabase托管在 metabase.example.com,则登出服务的POST绑定URL将是

https://metabase.example.com/auth/sso/handle_slo

与您的IdP同步组成员资格

此设置允许您根据您IdP中用户的属性将用户分配给Metabase组。此设置可能与IdP提供的组功能不相关;您可能需要创建一个单独的用户属性来设置人们的Metabase组,例如 metabaseGroups

首先,您需要创建一个SAML用户属性,您将使用它来指示该人应属于哪些Metabase组。此创建的用户属性可以是XML字符串或XML字符串列表。不同的IdP有不同的处理方式,但您可能需要编辑您的用户资料或找到将用户组映射到Metabase组名称列表的方法。

在Metabase中配置组模式

在您的SAML提供者中设置好一切后,您需要在Metabase中配置组模式。

  1. 启用 同步组成员资格 设置。
  2. 点击 编辑映射
  3. 点击 创建映射
  4. 输入您作为 metabaseGroups 属性值输入的组之一,然后点击 添加 按钮。
  5. 标题下点击下拉列表,选择具有特定 metabaseGroups 值的用户应添加到的Metabase组。
  6. 点击 保存
  7. 然后,输入您在SAML提供者中添加的用户属性名称。在本例中,我们告诉Okta metabaseGroups 属性应命名为 MetabaseGroupName,因此我们将在Metabase中的组属性名称字段中输入此名称。

Group schema

使用SSO创建Metabase账户

付费计划 对每个额外账户收费

新的SSO登录将自动创建新的Metabase账户。

使用外部身份提供者登录创建的Metabase账户没有密码。使用IdP注册Metabase的人必须继续使用IdP登录Metabase。

禁用密码登录

避免将自己锁在Metabase之外! 关闭密码登录适用于所有Metabase账户,包括您的Metabase管理员账户。在关闭密码登录之前,请确保您可以使用SSO登录到您的管理员账户。

为了使用单点登录(SSO)要求人们登录,请从 管理员设置 > 身份验证 禁用密码认证。关闭 启用密码认证 开关。

Password disable

新账户通知电子邮件

当人们首次通过SSO登录到Metabase时,Metabase将自动为他们创建账户,这将触发向Metabase管理员发送的电子邮件通知。如果您不希望发送这些通知,您可以在身份验证页面底部将其关闭。

使用SAML的示例代码

您可以在 SSO示例仓库 中找到使用SAML身份验证的示例代码。

解决SAML问题

阅读其他 Metabase版本 的文档。

想要改进这些文档? 提出更改。