Last updated
Last updated
一旦我们在Keycloak服务器中注册了客户端并设置了具有角色的各个用户帐户,我们就可以开始探索如何使用Spring Security和Keycloak Spring Boot适配器来保护资源。
尽管访问令牌的创建和管理是Keycloak服务器的职责,但在Spring应用中,确定哪些用户角色有权执行哪些操作是在各个服务中进行的。为了设置受保护的资源,需要执行以下操作:
将Spring Security和Keycloak 的JAR包添加到要保护的服务中。
配置要保护的服务,以指向Keycloak服务器。
定义能够谁能够访问服务。
需要在 organization 服务的Maven配置文件中添加一些依赖项:
一旦组织服务被设置为受保护的资源。每次对服务进行调用时,调用者必须包含HTTP标头Authentication,标头中包含一个Bearer访问令牌。受保护资源在收到令牌后,必须回调Keycloak服务器以认证令牌是否有效。
访问规则可以从粗粒度(任何经过身份认证的用户都可以访问整个服务)到细粒度(只有具有指定角色的应用程序可以访问,但只能通过DELETE访问此URL)的范围。
所有访问规则都在configure()方法内定义。我们将使用Spring传入的HttpSecurity类来定义我们的规则。在本例中,我们将限制对 organization 服务中的任何URL的访问,仅允许经过身份认证的用户。
请记住,在调用 organization 服务时,我们需要将授权类型设置为Bearer Token,并携带access_token的值。