Keycloak支持OTP登录,请查看文章[Keycloak] - OTP(One-time Password)登录。这篇文章介绍当用户输入用户名和密码登录,系统会给该用户发送一封含验证码的邮件,用户输入这个验证码及可登录。
在配置之前,需要满足如下条件:
- 启动Keyclaok服务,请参考文章[Keycloak] - 基于Spring Boot框架的,内嵌式的服务
配置用户
既然是发送邮件,用户必须登录邮箱地址。使用超级用户登录keyclaok,并切换到dubhe realm, 进入Users -> 选择一个用户 -> 修改Email属性,如图:
修改后保存即可
配置登录流程
进入Authentication -> Flows 点击‘New’,如图:
创建一个Browser With OTP-Mail的登录流程,并如下配置:
在OTP-MAIL行,点击'Actions'按钮,选择‘config’,打开配置窗口,配置验证码的长度,过期时间等信息,如图:
使用新的登录流程
进入Authentication -> Bindings 功能,在 ‘Browser Flow’选择‘Browser With OTP-Mail’流程保存即可,如图:
登录系统
在游览器中输入http://localhost:9000/auth/realms/dubhe/account/使用用户wangw/123登录,系统提示输入验证码,如图:
在后端系统控制台,会打印验证码,输入验证码即可登录。如图:
总结
完整的项目可以在Gitee找到,欢迎下载。