首页 > 解决方案 > Keycloak:在社交身份提供者登录时传递自定义用户属性

问题描述

在注册时,Keycloak 提供了通过 Keycloak 主题的注册页面模板通过“输入”元素添加自定义用户属性的功能,如下所示:

<input id="user.attributes.[the_custom_attribute]" name="user.attributes.[the_custom_attribute]" />

但是,这似乎只有在用户创建帐户并提交表单时才有效。

如果用户通过社交身份提供商(google、microsoft、github 等)登录,我们如何添加自定义用户属性?

标签: keycloakkeycloak-serviceskeycloak-javascript

解决方案


如果您使用社交身份提供者登录应用程序,那么customer_attribute您将无法使用。

但是,如果您仍然希望在该用户登录之前为其设置该属性,那么您可以添加自定义所需的操作来实现此功能。您可以创建新的 RequiredCustomAttribute 操作并从管理控制台启用它。

实现您自己所需的操作,类似于org.keycloak.authentication.requiredactions.UpdateProfilekeycloak 提供的类。customer_attribute您可以在这个新的必需操作流程中将您的标记为必需。

当您完成上述所有操作后,下次当用户使用Social Identity Provider登录时,他/她将被要求custom_attribute在下一页输入。


推荐阅读