我使用Spring Security和Spring OAuth2作为用户注册的身份验证服务器。但我想改变运行时用户的角色。但我在网上看过Keycloak,但我们不能简单地用春天。你有人推荐,也给Keycloak?
答案 0 :(得分:0)
我不完全确定我理解。但是,如果你问是否可以通过从其他来源加载角色来修改在Spring Security受保护客户端中从Keycloak返回的角色,那么回答是肯定的,但有一点需要注意。
您可以扩展KeycloakAuthenticationProvider
以在将身份验证存储到Spring Security上下文之前修改身份验证。看一下KeycloakUserDetailsAuthenticationProvider
的灵感。
需要注意的是,这些修改仅限于当前客户端。您无法以这种方式修改访问令牌中的角色,并使用它来调用其他服务。如果这是您的意图,您可能希望扩展Keycloak服务器中的一个SPI。这是一种更复杂的方法,但访问令牌可以跨服务使用。