Springboot中结合Keycloak和Spring security 开启细粒度权限控制

本文介绍如何在SpringBoot项目中集成SpringSecurity和Keycloak,并实现细粒度权限控制。通过配置Keycloak和SpringSecurity,可以实现安全且灵活的角色及权限管理。

Springboot中结合Keycloak和Spring security 开启细粒度权限控制

背景说明

Keycloak作为开源轻量级的统一账号管理系统,可以帮助我们快速搭建一个完整,安全的支持单点登录,开放平台,鉴权及授权的集中式账号管理系统。

加上Keycloak的Authorization Services,提供给我们灵活强大的细粒度权限控制,而不再局限在角色访问控制。

这篇文章重点在于,如何在springboot中集成spring security,以及keycloak,以及配置相关访问权限配置。

而 Keycloak服务的搭建,领域的配置,Authorization Services的配置则不在这里涉及。

引入依赖:Spring Security Adapter

Keycloak官方文档,提供了 Keycloak Java适配器的相关配置说明,集成Springboot说明,以及 Spring security中的集成,这篇文章主要参考
https://www.keycloak.org/docs/latest/securing_apps/index.html#_spring_security_adapter
可以作为官方文档的一个实践。

<dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-spring-security-adapter</artifactId>
    <version>12.0.1</version>
</dependency>

<dependency>
     <groupId>org.keycloak</groupId>
     <artifactId>keycloak-authz-client</artifactId>
     <version>12.0.1</version>
 </dependency>

结合spring security则必须加上 spring security的依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

keycloak.json配置

keycloak的配置可以放在 application.yaml中,也可以单独放在自己的keycloak.json中;

放在不同位置,只需要在下面的配置文件中添加对应的resolver即可;

在这里,我们放在单独的keycloak.json中

{
    "realm": "kulchao-mall",
    "auth-server-url": "http://127.0.0.1:8018/auth",
    "ssl-required": "none",
    "resource": "mall_system",
    "bearer-only": true,
    "credentials": {
        "secret": "a9e0d2ce-25a4-4e10-b8bf-577f28468a42"
    },
    "policy-enforcer": {
        "paths": [
            {
                "name": "commodity",
                "path": "/",
                "methods": [
                    {
                        "method": "GET",
                        "scopes": ["view"]
                    },
                    {
                        "method": "POST",
                        "scopes": ["edit"]
                    }
                ]
            }
        ]
    }
}

KeycloakSecurityConfig配置

完成上述步骤后,就需要参照Spring Security的使用,配置下SecurityConfig,形式如下:

@EnableWebSecurity(debug = true)
@KeycloakConfiguration
public class KeycloakSecurityConfig extends KeycloakWebSecurityConfigurerAdapter {
...
}

下面一步步讲解其中需要注意的地方:

配置如何读取keycloak<

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值