spring-security 通过Sping Boot 管理的自定义权限和Keycloak实现细粒度访问控制

lyr7nygr  于 2022-11-11  发布在  Spring
关注(0)|答案(1)|浏览(175)

我正在开发一个Sping Boot / Spring Security应用程序,它使用Keycloak作为身份和访问管理(IAM)组件。我们有一个用户界面,管理员可以在其中定义子用户和相关权限,以查看、编辑和删除不同的模块。这些权限可以随时更新,并在我们应用程序的Postgres数据库中进行维护。
我已经使用Spring Security生成的JWT标记完成了初始实现,其中我将这些权限添加为Granted Authorities,并在方法级别使用注解(如@PreAuthorize("hasAuthority('LIST_CURRENCIES')"))来实现这一点。但是,当我将IAM卸载到Keycloak时,到目前为止,还没有成功地实施方法级别的安全性。
我们如何将这些权限同步到Keycloak,以便每个用户的权限列表可以作为可以由Spring Security强制执行的声明包含在JWT令牌中?

7cwmlq89

7cwmlq891#

您可以查看https://github.com/ch4mpy/user-proxiesapi模块。
在这个项目中,我为keycloak定义了一个自定义Map器,以便为访问令牌添加一个自定义声明,然后在spring-security SpEL中使用它。

相关问题