keycloak~Consent Required的使用

Consent Required在keycloak中是“授权所需”,或者是“同意必需“的意思,它类似于oauth2授权时的“确认”,当你在第三方认证后,通过oauth2协议,你可以把用户相关信息返回给应用程序,而这时,用户自己需要确认一下,自己的这些信息是否可以给应用程序。

为客户端配置Consent Required选项

  • 可以自定义这个同意的页面,这些是可以定制化的

用户第一次通过客户端登录,会显示这个确认页

  • 可以看到目前对客户端开放的所有scope
  • 每种scope对应用户的一些信息,如email,address,profile等
  • 这些scope可以在keycloak中的client scopes(客户端范围)菜单中找到,而每个scope包含的用户信息,可以在对应的mappers(映射)里找到

查看用户同意的选项

  • 用户公开了哪些scope,可以在这里找到

相关实现方式与数据的存储

  • 通过keycloak的required_action(必须操作)实现,当通过用户确认的scope会由keycloak进行存储,下次用户再访问客户端,就不会再出现这个页面了
  • Consent Required的数据,被存储到了user_consentuser_consent_client_scope这两张表中
  • keycloak后台,可以在用户详细中,管理用户的Consent Required数据

注册到keycloak的所有必需操作(required_action)

  • 在验证(Authentication)-必需操作(required action)中可以看到所有已被注册到keycloak中的required_action
  • 需要需要自定义required_action,需要实现RequiredActionProvider这个接口,然后注册到resources/META-INFO/services/org.keycloak.authentication.RequiredActionFactory里
  • 在认证流程中,可以调用UserModel的addRequiredAction和removeRequiredAction方法,来添加或者删除一个required_action
posted @   张占岭  阅读(47)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· 2分钟学会 DeepSeek API,竟然比官方更好用!
· .NET 使用 DeepSeek R1 开发智能 AI 客户端
· DeepSeek本地性能调优
· 一文掌握DeepSeek本地部署+Page Assist浏览器插件+C#接口调用+局域网访问!全攻略
历史上的今天:
2019-10-21 java里的单例实现
2014-10-21 EF架构~基于EF数据层的实现
2014-10-21 标准架构~业务层到底是否应该关注数据持久化的方式
2014-10-21 Redis学习笔记~Redis主从服务器,读写分离
点击右上角即可分享
微信分享提示