发送密码忘记的邮件

时间:2020-06-04 13:01:48

标签: keycloak

我在Keycloak中有两个类似的用例。

密码重置

首先,我想让用户重置密码。用户已经在使用一个应用程序,因此最好将其集成到那里。我在其中创建了一个小的环形模块,并尝试通过Keycloak忘记密码表单提供的相同机制来触发忘记密码的邮件。但是我不知道他们是如何创建这个动作链接的:

https://example.com/keycloak/auth/realms/my-realm/login-actions/reset-credentials?session_code=dpmvJISKKf-SSZbC8_FkrBZEuYhwcV24ui-dc27DKvI&execution=98bd5b5d-054e-4c44-ad07-50b668fb149a&client_id=account&tab_id=Lr7iH6BRehM

执行似乎总是一样的,但是我不知道从何处获得它。

我当前的解决方案在Keycloak和应用程序在sam域上运行时起作用,它是从keycloak请求原始站点,提取链接,然后在用户输入用户名后对该URL发出发布请求。但这有点脏:)

是否有一种“正确”的方法?

添加密码重置

我们有不同的领域来使用LDAP中具有SASL属性和MSAD中存储的真实密码的用户帐户。我们的前端可以弄清楚哪种类型的用户正在请求密码重设并委托给相应的领域。

初始密码

第二个问题是有关在管理区域中创建用户并发送初始邮件以设置密码的问题。我可以使用上面的方法来触发邮件。但是邮件中确实忘记了密码,这是不好的,因为他们确实必须首次设置密码。 我试图在用户REST表示中设置所需的操作,但似乎这不会触发邮件。

是否需要采取必要的措施来做到这一点?我错过了功能吗?

添加密码重置 我们有不同的领域来处理具有SASL属性的LDAP中的用户帐户和存储在MSAD中的真实密码。我们的前端可以弄清楚哪种类型的用户正在请求密码重置,并委托给相应的领域。

1 个答案:

答案 0 :(得分:0)

keycloak here提供了很多admin-api端点

根据您的要求;

  1. 密码重置-您应该能够通过利用API“ PUT / {realm} / users / {id} / execute-actions-email”来做到这一点。 StackOverflow中有很多示例,其中包括this
  2. 初始密码-对于创建用户,调用“ POST / {realm} / users”时应该能够使用类似的方法,因为您可以在UserRepresentation对象中传递“必需的操作”。另外,您可以将此API与以前的API结合使用,以满足您的需求。这里还有其他API可以使用,但是请记住,keycloak也为用户提供了registration page。 请同时检查“ PUT / {realm} / users / {id} / reset-password”。

在此链接中查看explanation的必要操作。

请注意,要调用keycloak admin-api,您应该创建一个具有足够权限来调用admin-api的客户端。其配置将取决于您计划使用的授权机制-但要了解其要点-创建客户端并检查客户端页面上可用的替代方法-附上屏幕截图以供参考;

client-screen-snap

祝你好运!