使用Keycloak的SAML
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 givenName”和“X500 surname”。
- 点击添加选中项。
- 点击每个属性旁边的编辑,并进行以下更改
- SAML属性名称:Metabase期望接收的名称。
- SAML属性名称格式:从下拉菜单中选择“基本”。
您可以从您的Metabase 管理员设置 > 认证 > SAML > 属性编辑属性值。
解决SAML问题
对于常见问题,请访问SAML故障排除。
阅读其他Metabase版本的文档。