SAML 与 Keycloak
Keycloak 是一个开源平台,可用作用户目录以保存用户数据,同时充当单点登录的 IdP。
- 在 Keycloak 中设置 SAML(身份提供商)。
- 在 Metabase 中设置 SAML(服务提供商)。
有关更多信息,请查看我们的使用 SAML 进行身份验证指南。
在 Keycloak 控制台中工作
- 转到 Keycloak 管理控制台并以管理员身份登录。
- 从管理 > 用户创建用户。您需要使用电子邮件、名字和姓氏填充字段。
- 创建至少一个用户后,导航选项卡将出现在用户页面的顶部。转到凭据为您的用户设置密码。
- 关闭临时切换。
- 点击设置密码以保存您的更改。
-
从管理 > 客户端 > 创建创建一个新的 SSO 客户端
- 客户端 ID:输入
metabase
小写。 - 客户端类型:从下拉菜单中选择
SAML
。 - 点击下一步。
- 有效的重定向 URI:您托管 Metabase 实例的 URL,后跟斜杠 (/) 和星号 (_)。例如,如果您在本地托管 Metabase,地址为
https://127.0.0.1:3000
,则 URL 将为https://127.0.0.1:3000/_
。 - 主页 URL:在您的 Metabase 中,转到管理设置 > 身份验证 > SAML。您将在IdP 应重定向回的 URL字段中找到您的主页 URL。
- 点击保存。
- 客户端 ID:输入
-
(可选)禁用 SSO 客户端的密钥签名。请参阅用于签署 SSO 请求的设置。
- 点击密钥选项卡。
- 客户端签名是必需的:关闭。
- 将用户属性从 Metabase 映射到 SSO 客户端。
- 点击客户端范围选项卡。
- 点击
metabase-dedicated
。 - 点击添加预定义映射器。
- 将 Keycloak 中用户的属性映射到 Metabase.
- 从配置 > 领域设置配置服务提供商 (Metabase)。
- 从端点中,选择“SAML 2.0 身份提供商元数据”。
- XML 文件将在新选项卡中打开。
- 保留此文件以供参考,我们将在下一节中使用它来配置 Metabase。
将字段从 Keycloak 映射到 Metabase
- 转到您的 Metabase 管理设置 > 身份验证 > SAML。
- 从上面步骤 7 中的 XML 文件
- SAML 身份提供商 URL:插入紧跟以下字符串之后的 URL:
Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location=
- SAML 身份提供商颁发者:插入紧跟在
entityID=
后面的 URL。 - SAML 身份提供商证书:输入出现在
<X509Certificate>
标签后的长字符串。插入此字符串时请注意:如果添加或遗漏任何字母或特殊字符,则设置将不起作用。 - SAML 应用程序名称:
metabase
- SAML 身份提供商 URL:插入紧跟以下字符串之后的 URL:
- 点击保存更改。
- 检查SAML 身份验证是否在页面顶部切换为开启。
将 Keycloak 中用户的属性映射到 Metabase
默认情况下,Keycloak 可以导入四个用户属性:名字、姓氏、电子邮件和角色。
假设我们希望在客户端 (Metabase) 和身份验证服务器 (Keycloak) 之间传递电子邮件、名字和姓氏。
- 从控制台右侧的复选框中选择“X500 电子邮件”、“X500 名字”和“X500 姓氏”。
- 点击添加所选。
- 点击每个属性旁边的编辑并进行以下更改
- SAML 属性名称:Metabase 期望接收的名称。
- SAML 属性名称格式:从下拉菜单中选择“基本”。
您可以从您的 Metabase 管理设置 > 身份验证 > SAML > 属性编辑属性值。
SAML 问题故障排除
对于常见问题,请转到SAML 故障排除。
阅读其他版本的 Metabase文档。