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