去评论
dz插件网

吊炸天的可视化安全框架,轻松搭建自己的认证授权平台!

饾暦饾枎饾枒饾枏饾枂饾枅饾枑
2023/08/08 08:17:19

之前我们在学习Oauth2的时候,需要通过写代码来实现认证授权服务。最近发现一款可视化的安全框架Keycloak,只需几个命令就可以快速搭建认证授权服务,无需自行开发。原生支持SpringBoot,使用起来非常简单,推荐给大家!

简介


Keycloak是一款开源的认证授权平台,在Github上已有9.4k+Star。Keycloak功能众多,可实现用户注册、社会化登录、单点登录、双重认证 、LDAP集成等功能。

安装


使用Docker搭建Keycloak服务非常简单,两个命令就完事了,我们将采用此种方式。
docker pull jboss/keycloak:14.0.0
docker run -p 8080:8080 --name keycloak \
-e KEYCLOAK_USER=admin \
-e KEYCLOAK_PASSWORD=admin \
-d jboss/keycloak:14.0.0


控制台使用


接下来我们来体验下Keycloak的管理控制台,看看这个可视化安全框架有什么神奇的地方。




















结合Oauth2使用


OAuth 2.0是用于授权的行业标准协议,在《Spring Cloud Security:Oauth2使用入门》 一文中我们详细介绍了Oauth2的使用,当然Keycloak也是支持的,下面我们通过调用接口的方式来体验下。

两种常用的授权模式


我们再回顾下两种常用的Oauth2授权模式。

授权码模式



密码模式



密码模式体验









结合SpringBoot使用


接下来我们体验下使用Keycloak保护SpringBoot应用的安全。由于Keycloak原生支持SpringBoot,所以使用起来还是很简单的。


<!--集成Keycloak-->
<dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-spring-boot-starter</artifactId>
    <version>14.0.0</version>
</dependency>
# Keycloak相关配置
keycloak:
  # 设置客户端所在领域
  realm: macrozheng
  # 设置Keycloak认证服务访问路径
  auth-server-url: http://192.168.7.142:8080/auth
  # 设置客户端ID
  resource: mall-tiny-keycloak
  # 设置为公开客户端,不需要秘钥即可访问
  public-client: true
  # 配置角色与可访问路径的对应关系
  security-constraints:
    - auth-roles:
        - mall-tiny
      security-collections:
        - patterns:
            - '/brand/*'
            - '/swagger-ui/*'




总结


Keycloak是一款非常不错的可视化安全框架,让我们无需搭建认证服务即可完成认证和授权功能。原生支持SpringBoot,基本无需修改代码即可集成,不愧为现代化的安全框架!

参考资料

项目源码地址


https://github.com/macrozheng/mall-learning/tree/master/mall-tiny-keycloak


微信8.0将好友放开到了一万,小伙伴可以加我大号了,先到先得,再满就真没了

扫描下方二维码即可加我微信啦,2021,抱团取暖,一起牛逼。


推荐阅读