当前位置: 首页 > 知识库问答 >
问题:

根据标识提供程序令牌中存在的数据更新Keycloak用户数据

岳正阳
2023-03-14

我正在将Keycloak作为身份代理运行,并配置了一个身份提供程序。

当具有来自我的IdP的有效令牌的用户第一次访问我的应用程序时,该用户将使用来自该令牌的信息在Keycloak中创建。这包括电子邮件、用户名、名字和名字。然后Keycloak发出带有用户信息的令牌。

当同一用户随后登录时,将根据Keycloak数据库中的用户信息精心编制Keycloak令牌。

我的问题是这样的:如果用户在IdP更改了他的lastName,我如何配置Keycloak来自动更新其记录以匹配IdP令牌上的信息?

共有1个答案

阳文轩
2023-03-14

您不需要实现自己的identityprovider来实现这一点。相反,只需向标识提供程序添加AttributeImporter类型的映射器。对于使用姓氏的情况,您可以从OpenID提供程序应该提供的profile客户端范围中获取属性值。只需将claim设置为given_name,将user Attribute name设置为firstname,如此屏幕截图所示。每次使用代理帐户的新登录都将导致Keycloak更新该帐户。(在Keycloak 7.0.1上测试)

 类似资料:
  • Entity Framework Core 通过一个提供程序模型来允许使用 EF 访问各种不同的数据库。一些概念对于大部分数据库是通用的,这些都包含在主要的 EF Core 组件中,包括 LINQ 的查询表达、事务以及从数据中加载出来后对象的变更跟踪。一些概念则是特定于个别提供程序,比如 SQL Server 提供程序允许你配置内存优化表(一个特定于 SQL Server 的功能),另外一些概念则

  • 我已经将Keycloak配置为身份代理,连接到我创建的自定义OIDC提供程序。在authorization_code流期间,Keycloak调用授权endpoint以获取代码。然后,它调用我的自定义OIDC提供程序的令牌endpoint,以将代码交换为auth令牌。 根据OIDC规范,是默认值。如果KeyCloak不支持这一点,我会感到惊讶;我只是似乎不知道如何配置它。

  • 我已使用以下方法在应用程序中输入凭据。 其中EnterText定义如下: 在测试类中,我写了下面的代码 我得到以下错误: 失败:loginProxy(“11”,“Priya”)java.lang.NumberFormatException:java.lang.Integer处为空。parseInt(未知源)位于java.lang.Integer。parseInt(未知源) 请帮助解决同样的问题。据

  • 我正在尝试使用Keycloak(13.0.1)作为身份代理。我有一个iOS应用程序,它使用keycloak通过OIDC标识提供程序登录,然后使用令牌访问spring-boot后端。 我的问题是,我无法让keycloak注销也将用户从标识提供者会话中注销。 我花了几天时间在谷歌上搜索这个问题,并查看了stackoverflow和keycloak的讨论页面和git repo,但我找不到具体问题的答案。

  • 我有一个注册了< code>Keycloak的外部< code>openidconnect身份提供者。当客户端应用程序试图访问受保护的资源时,它会被重定向到< code>KeyCloak登录页面。在登录页面上,我启用了外部< code>openidconnect提供程序按钮。一旦用户单击该按钮,他将被带到外部身份提供者(即identityserver3实例)。外部提供商对用户进行身份验证并发回一个