使用Keycloak的SAML

Keycloak是一个开源平台,可以用作用户目录以保存用户数据,同时作为单点登录的IdP。

  1. 在Keycloak中设置SAML(身份提供者)。
  2. 在Metabase中设置SAML(服务提供者)。

更多信息,请参阅我们关于使用SAML进行认证的指南。

在Keycloak控制台中工作

  1. 前往Keycloak管理员控制台并登录为管理员。
  2. 管理 > 用户创建用户。您需要填写电子邮件、名和姓的字段。
  3. 创建至少一个用户后,导航标签将出现在用户页面顶部。前往凭证为您的用户设置密码。
    • 关闭临时开关。
    • 点击设置密码以保存您的更改。
  4. 管理 > 客户端 > 创建创建新的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。
    • 点击保存
  5. (可选)禁用SSO客户端的密钥签名。请参阅SSO请求的设置

    • 点击密钥标签。
    • 客户端签名必需:关闭。
  6. 将Metabase中的用户属性映射到SSO客户端。
  7. 配置 > 领域设置配置服务提供商(Metabase)。
    • 端点中选择“SAML 2.0身份提供者元数据”。
    • 一个XML文件将在新标签页中打开。
    • 保留此文件以备参考,我们将在下一节中用它来配置Metabase。

从Keycloak到Metabase的字段映射

  1. 前往您的Metabase 管理员设置 > 认证 > SAML
  2. 从步骤7中上面的XML文件
    • SAML身份提供者URL:在以下字符串之后插入出现的URL:Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location=
    • SAML身份提供者颁发者:在entityID=之后插入出现的URL。
    • SAML身份提供者证书:输入在<X509Certificate>标签之后出现的长字符串。注意插入此字符串时:如果添加了任何字母或特殊字符,或者位置错误,则设置将无法工作。
    • SAML应用程序名称metabase
  3. 点击保存更改
  4. 检查页面顶部是否已将SAML认证切换为开启

将Keycloak中的用户属性映射到Metabase

Keycloak默认可以导入四个用户属性:姓名、姓氏、电子邮件和角色。

假设我们想要将电子邮件、姓名和姓氏在客户端(Metabase)和认证服务器(Keycloak)之间传递。

  1. 从控制台右侧的复选框中选择“X500电子邮件”、“X500 givenName”和“X500 surname”。
  2. 点击添加选中项
  3. 点击每个属性旁边的编辑,并进行以下更改
    • SAML属性名称:Metabase期望接收的名称。
    • SAML属性名称格式:从下拉菜单中选择“基本”。

您可以从您的Metabase 管理员设置 > 认证 > SAML > 属性编辑属性值。

解决SAML问题

对于常见问题,请访问SAML故障排除

阅读其他Metabase版本的文档。

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