基于SAML的认证
将您的 SSO 集成到 Metabase 可以让您
- 当有人登录到 Metabase 时,提供 Metabase 账户。
- 自动将用户属性从您的 SSO 传递到 Metabase,以支持 数据沙箱。
- 让人们无需重新验证即可访问 Metabase。
确认您的 Metabase 管理员账户密码
在设置 SAML 之前,请确保您知道您的 Metabase 管理员账户密码。如果在设置过程中遇到任何问题,您可以通过登录屏幕上的“管理员备份登录”选项进行登录。
在 Metabase 中设置与您的 IdP 的 SAML
一旦您已 确认了您的 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
作为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中配置组模式。
- 启用 同步组成员资格 设置。
- 点击 编辑映射。
- 点击 创建映射。
- 输入您作为
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版本 的文档。