配置为 SAML IDP 的 Keycloak 在使用 google auth 时无法返回配置文件信息

问题描述 投票:0回答:1

我们有一个复杂的设置:

  1. 一个主要的 keycloak 服务器,为我们的 Web 应用程序提供身份验证(称为 KC1)

  2. 充当 SAML IDP(称为 KC2)并配置 Google 作为登录提供程序的辅助 keycloak 服务器

KC1 将 KC2 配置为 SAML 提供商。

现在发生的事情是这样的:

  • 我打开应用程序页面,进入KC1的登录页面
  • 我单击 KC2 的 SAML 输入按钮
  • 页面转到KC2的登录页面,我点击“Google”按钮
  • 我获得了 Google 的帐户身份验证 UI 并登录
  • 我被重定向回我的申请页面

现在,由于各种原因,我们在后端 SQL DB 中维护用户名/电子邮件,并且当该 SAML 用户首次登录时,我们需要创建一个新条目。 对于我们尝试过的大多数 SAML idps,当前 keycloak 会话的 UserRepresentation 具有可识别的持久 ID,我们可以轻松映射其他 SAML 属性,如电子邮件、组等。

但是,使用 KC2 和 google,我得到的只是像 G-6baaadeb-7c72-4ee8-ae64-e293359ec1bc 这样的用户名

我尝试为 google idp 添加属性映射器 - 帮助说:

社交提供商用户配置文件 JSON 数据中要从中获取值的字段路径。您可以使用点表示法进行嵌套,使用方括号表示数组索引。例如。 '联系人.地址[0].国家'。

我尝试了姓名、电子邮件、身份证号码 - 没有任何效果。 我找不到任何关于配置文件 JSON 应该是什么样子的信息

KC2 服务器最终会使用正确的电子邮件地址等创建用户条目

在我的 keycloak 用户表示中,我得到类似的东西

"federatedIdentities": [
{
  "identityProvider": "my_litte_idp",
  "userId": "G-13b51145-5433-43df-9ae1-af2217e80101",
  "userName": "g-13b51145-5433-43df-9ae1-af2217e80101"
}

如何让 KC2 将用户 ID 或电子邮件地址添加到其对 KC1 的 SAML 响应中?

提前致谢

google-oauth keycloak saml
1个回答
0
投票

你明白了吗?我也有同样的问题。

© www.soinside.com 2019 - 2024. All rights reserved.