SAML 与 Keycloak

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 名字”和“X500 姓氏”。
  2. 点击添加所选
  3. 点击每个属性旁边的编辑并进行以下更改
    • SAML 属性名称:Metabase 期望接收的名称。
    • SAML 属性名称格式:从下拉菜单中选择“基本”。

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

SAML 问题故障排除

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

阅读其他版本的 Metabase文档。