SAML with Keycloak

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

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

有关更多信息,请查看我们的 使用 SAML 进行身份验证 指南。

在 Keycloak 控制台中操作

  1. 转到 Keycloak 管理控制台并以管理员身份登录。
  2. 管理 > 用户 创建用户。您需要填写电子邮件、名字和姓氏字段。
  3. 创建至少一个用户后,用户 页面顶部将出现导航选项卡。转到 凭据 为您的用户设置密码。
    • 关闭 临时 切换开关。
    • 点击 设置密码 保存更改。
  4. 管理 > 客户端 > 创建 创建新的 SSO 客户端

    • 客户端 ID:输入小写 metabase
    • 客户端类型:从下拉列表中选择 SAML
    • 点击 下一步
    • 有效重定向 URI:您托管 Metabase 实例的 URL,后跟斜杠 (/) 和星号 (*)。例如,如果您在 https://:3000 本地托管 Metabase,则 URL 为 https://: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 名”和“X500 姓”。
  2. 点击 添加选中项
  3. 点击每个属性旁边的 编辑 并进行以下更改
    • SAML 属性名称:Metabase 期望接收的名称。
    • SAML 属性名称格式:从下拉菜单中选择“基本”。

您可以在 Metabase 的 管理设置 > 身份验证 > SAML > 属性 中编辑属性值。

配置 Keycloak 和 Metabase 之间的组映射

您可以配置 Metabase 根据用户的 Keycloak 组自动将用户分配到 Metabase 组。

在 Keycloak 中设置组映射

在您的 Keycloak 客户端中

  1. 点击 客户端作用域 选项卡
  2. 点击已创建的 metabase-dedicated 客户端作用域。
  3. 点击 添加映射器 > “按配置”
  4. 选择 组列表
  5. 将属性名称更改为 member_of
  6. 取消选中使用“完整组路径”的选项(以便以后在 Metabase 中更容易配置)。
  7. 点击 保存

在 Metabase 中设置组映射

  1. 在管理员设置中,转到 身份验证 > SAML
  2. 在 SAML 设置中,打开 同步组成员资格
  3. 对于每个 Keycloak 组,设置与 Metabase 组的新映射。

    目前,Keycloak 组将在 Metabase 中显示时带有斜杠字符(“/”)前缀。例如,Keycloak 中名为 sales 的组在 Metabase 中将显示为 /sales

  4. 组属性名称 中,输入 member_of(您 Keycloak 配置中包含组列表的属性名称)。

SAML 问题排查

有关常见问题,请参阅 SAML 故障排除

阅读其他版本的 Metabase 的文档。

这有帮助吗?

感谢您的反馈!
想改进这些文档吗?建议更改。
© . This site is unofficial and not affiliated with Metabase, Inc.