绕过 KeyCloak 中的“执行以下操作”?

GG_*_*hon 5 python keycloak

使用 KeyCloak 作为身份管理后端,我希望新注册的用户收到一封带有指定域(不是 KeyCloak 的默认链接)的验证码的自定义电子邮件。

目前,KeyCloak 将发送一封电子邮件,链接到“执行以下操作”KeyCloak 页面;例如:

http://localhost:8080/auth/realms/test_webapp/login-actions/action-token?key=eyJhb...

在此链接之后,KeyCloak 提供的页面要求“继续进行电子邮件验证”,并使用另一个链接:

http://localhost:8080/auth/realms/<myrealm>/login-actions/required-action?execution=VERIFY_EMAIL&client_id=account&tab_id=Vu4BAcuG2X1

这种身份验证/验证舞蹈似乎很麻烦,并将 KeyCloak 直接暴露给用户 - 我希望整个用户身份验证流程(从注册开始)由我的后端处理,而不是 KeyCloak。有没有办法发送带有一些令牌的自定义电子邮件以允许验证用户?

示例流程为:

  1. 用户在 mysite.com 的/register路径上注册并被重定向到“检查您的电子邮件页面”
  2. mysite.com 的后端通过 KeyCloak 的 ReST API 注册一个新用户,“emailVerified=False”。
  3. 用户会收到一封 [自定义] 电子邮件来验证他们的电子邮件地址,例如电子邮件内容将是:<a href="mysite.com/verify-email?code=<some_code">verify</a>
  4. mysite.com 的后端<some_code>与 KeyCloak 的 ReST API交换以验证此用户的电子邮件,并且 [如果验证通过] KeyCloak 将更改 emailVerified 为 True。

KeyCloak 可以做到这一点吗?