Keycloak - 使用 Rest API 验证用户的电子邮件
Posted
技术标签:
【中文标题】Keycloak - 使用 Rest API 验证用户的电子邮件【英文标题】:Keycloak - Verify user's email using Rest API 【发布时间】:2020-09-12 09:47:00 【问题描述】:我正在尝试创建一个新用户,然后使用 REST API 验证他的电子邮件地址。
为了发送验证邮件,我在 Springboot 中使用了我自己的邮件类,所以我没有调用 keycloak 的 /send-verify-email
端点!
创建用户后,我可以在 keycloak 控制台中看到该用户已创建、启用并且需要验证他的电子邮件地址。
但问题就在这里。如何使用 Keycloak REST API 验证电子邮件?没有用于此目的的端点,我无法更新 UserRepresentation,因为我没有访问令牌。而且没有访问令牌,你不能更新用户,对吧?
所以应该有一些不安全的端点,不需要访问令牌和验证电子邮件,如<userID>/verify-email
左右,但没有。所以我正在寻找替代方案,如何验证用户的电子邮件。
当使用 Keycloak Springboot 客户端(或如何调用它)时,有一些方法可以用于此目的(例如更新没有令牌的用户),但不幸的是我无法使用这个库。
我真的开始讨厌钥匙斗篷了..
谢谢大家的帮助
【问题讨论】:
【参考方案1】:所以应该有一些不安全的端点,不需要访问令牌和验证电子邮件,如 /verify-email
这确实是不安全的方法 - 任何人都可以验证任何电子邮件。
创建具有适当权限配置的新管理员用户/客户端(需要允许更新用户)并使用它(=您需要登录程序 -> 访问令牌)来更新用户模型(PUT /realm/users/id
- emailVerified: true
) .当然,这个管理员用户将自己负责确保电子邮件是正确的。
【讨论】:
好的,这是一个很好的答案。你知道我应该添加到这个帐户的权限吗?是否来自领域管理 - 管理用户? 我也面临同样的情况。我们可以使用具有“管理用户”领域权限的客户端,这意味着我们必须将客户端凭据保存在前端吗?以上是关于Keycloak - 使用 Rest API 验证用户的电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
带有 NGINX 代理服务器的 Keycloak 未验证 rest api
需要使用 Keycloak 和 oAuth2 保护普通 Spring REST API 的示例
带有 Keycloak 的 Angular 和 Spring Boot REST API 的 CORS 问题