Keycloak:在社交身份提供者登录时传递自定义用户属性

Posted

技术标签:

【中文标题】Keycloak:在社交身份提供者登录时传递自定义用户属性【英文标题】:Keycloak: Pass custom user attributes on Social Identity Provider Login 【发布时间】:2021-08-11 16:21:40 【问题描述】:

在注册时,Keycloak 提供了通过 Keycloak 主题的注册页面模板添加 custom user attributes 的功能,“输入”元素看起来像:

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

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

如果用户通过Social Identity Provider(google、microsoft、github 等)登录,我们如何添加自定义用户属性?

【问题讨论】:

【参考方案1】:

如果您使用 Social Identity Provider 登录应用程序,那么您将无法使用 customer_attribute

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

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

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

【讨论】:

以上是关于Keycloak:在社交身份提供者登录时传递自定义用户属性的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 Keycloak 中使用自定义身份验证逻辑?

是否可以在Keycloak中使用自定义身份验证逻辑?

Keycloak 身份代理 API

Azure 应用服务:自定义身份验证和社交提供程序

在 Keycloak SPI/Provider 中获取当前用户访问令牌(初始登录时)

Keycloak社交登录休息api