基于 SAML 的身份验证
将您的 SSO 与 Metabase 集成,您可以
- 当有人登录 Metabase 时,配置一个 Metabase 账户。
- 从您的 SSO 自动传递用户属性到 Metabase,以便支持 数据沙盒。
- 让人们无需重新验证即可访问 Metabase。
确认您的 Metabase 管理员账户的密码
在设置 SAML 之前,请确保您知道您的 Metabase 管理员账户的密码。如果您在设置过程中遇到任何问题,您可以通过登录屏幕上的“管理员备份登录”选项登录。
在 Metabase 中设置 SAML 与您的 IdP
一旦您确认您的 Metabase 管理员账户的密码,前往管理面板的 设置 部分,然后单击 身份验证 选项卡。点击身份验证页面的 SAML 部分中的 设置 按钮,您将看到此表单
此表单包含三个部分
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
https://metabase.yourcompany.com/auth/sso
作为您 IdP 的 SAML 表单中的重定向 URL。
不同的 IdP 对重定向 URL 使用不同的名称。以下是一些常见示例 | 提供商 |
---|---|
Auth0 | 名称 |
Okta | 应用程序回调 URL |
OneLogin | ACS(消费者)URL |
用户属性
Metabase 将自动登录已通过您的 SAML 身份提供商身份验证的人员。为了做到这一点,身份提供商的 SAML 响应中返回的第一个断言必须包含每个人的名字、姓氏和电子邮件的属性。
大多数 IdP 默认情况下已经包含这些断言,但有些(例如Okta)必须配置为包含它们。
通常,您需要将这些用户属性(名字、姓氏和电子邮件)粘贴到标记为“名称”、“属性”或“参数”的字段中。
如果您允许人们编辑他们的电子邮件地址:请确保更新 Metabase 中相应的账户电子邮件。保持电子邮件地址同步将保护人们免于失去对其账户的访问权限。
用于签署 SSO 请求的设置(可选)
这些是您可以填写的其他设置,用于签署 SSO 请求,以确保它们不被篡改。
在 Metabase 中启用 SAML 身份验证
Metabase 现在需要了解有关您的 IdP 的一些信息。以下是每个设置的细分
SAML 身份提供商 URL
Metabase 将重定向登录请求到身份提供商 URL,人们将在那里使用 SSO 登录。
不同的 IdP 对身份提供商 URL 使用不同的名称。以下是一些常见示例
不同的 IdP 对重定向 URL 使用不同的名称。以下是一些常见示例 | 提供商 |
---|---|
Auth0 | 身份提供商登录 URL |
Okta | 身份提供商单点登录 URL |
OneLogin | SAML 2.0 端点 (HTTP) |
SAML 身份提供商颁发者
SAML 身份提供商颁发者是 IdP 的唯一标识符。您可能还会看到“颁发者”被称为“实体 ID”。来自 IdP 的断言将包含此信息,并且 Metabase 将验证颁发者是否与您设置的值匹配。
我们建议您设置此值,以使您的 SAML 配置更加安全。
不同的 IdP 对重定向 URL 使用不同的名称。以下是一些常见示例 | 提供商 |
---|---|
Auth0 | 身份提供商登录 URL |
Okta | 身份提供商颁发者 |
OneLogin | 颁发者 URL |
SAML 身份提供商证书
SAML 身份提供商证书是 Metabase 连接到 IdP URI 时将使用的编码证书。该证书看起来像一大段文本,您需要小心地复制和粘贴它 — 空格很重要!
您的 IdP 可能会让您将此证书下载为文件(通常是 .cer
或 .pem
),然后您需要在一个文本编辑器中打开它,以便复制内容,然后粘贴到 Metabase 的框中。
请注意,您的证书文本可能包含看起来像 -----BEGIN CERTIFICATE-----
和 -----END CERTIFICATE-----
的标头和页脚注释。将证书文本粘贴到 Metabase 中时,应包含这些注释。
不同的 IdP 对重定向 URL 使用不同的名称。以下是一些常见示例 | 提供商 |
---|---|
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 中配置群组架构。
- 打开同步群组成员资格设置。
- 点击编辑映射。
- 点击创建映射。
- 输入您作为
metabaseGroups
属性值输入的群组名称之一,然后点击添加按钮。 - 点击
群组
标题下出现的下拉菜单,选择具有此特定metabaseGroups
值的用户应添加到的 Metabase 群组。 - 点击保存。
- 之后,输入您在 SAML 提供商中添加的用户属性的名称。在本例中,我们告诉 Okta,
metabaseGroups
属性应命名为MetabaseGroupName
,因此这就是我们将在 Metabase 的“群组属性名称”字段中输入的内容。
使用 SSO 创建 Metabase 帐户
付费计划 对每个额外帐户收费。
新的 SSO 登录将自动创建一个新的 Metabase 帐户。
使用外部身份提供商登录创建的 Metabase 帐户没有密码。使用 IdP 注册 Metabase 的人必须继续使用 IdP 登录 Metabase。
禁用密码登录
避免将自己锁定在 Metabase 之外! 关闭密码登录适用于所有 Metabase 帐户,包括您的 Metabase 管理员帐户。在关闭密码登录之前,请确保您可以使用 SSO 登录您的管理员帐户。
要要求人们使用 SSO 登录,请从管理设置 > 身份验证禁用密码身份验证。关闭启用密码身份验证切换开关。
新帐户通知电子邮件
当人们首次通过 SSO 登录 Metabase 时,Metabase 将自动为他们创建一个帐户,这将触发发送给 Metabase 管理员的电子邮件通知。如果您不希望发送这些通知,您可以在“身份验证”页面的底部关闭它们。
使用 SAML 的示例代码
您可以在 SSO 示例存储库中找到使用 SAML 身份验证的示例代码。
SAML 问题故障排除
阅读其他版本的 Metabase 的文档。