·设为首页收藏本站📧邮箱修改🎁免费下载专区💎积分✅卡密📒收藏夹👽聊天室
DZ插件网 门户 网站安全 查看内容

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

2023-8-8 08:17| 发布者: 𝕷𝖎𝖑𝖏𝖆𝖈𝖐| 查看: 93425| 评论: 0

摘要: 了解可视化安全框架Keycloak的使用方法,快速搭建认证授权服务。通过Docker搭建Keycloak服务,并体验管理控制台的多国语言支持。了解如何在Keycloak中创建领域和用户,以及使用Oauth2方式调用接口获取Token。最后,了解Keycloak如何原生支持SpringBoot,保护应用的安全。

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

简介


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

安装


使用Docker搭建Keycloak服务非常简单,两个命令就完事了,我们将采用此种方式。
  • 首先下载Keycloak的Docker镜像,注意使用jbOSS的镜像,官方镜像不在DockerHub中;
docker pull jboss/keycloak:14.0.0
  • 使用如下命令运行Keycloak服务:
docker run -p 8080:8080 --name keycloak \
-e KEYCLOAK_USER=admin \
-e KEYCLOAK_PASSWORD=admin \
-d jboss/keycloak:14.0.0
  • 运行成功后可以通过如下地址访问Keycloak服务,点击圈出来的地方可以访问管理控制台,访问地址:http://192.168.7.142:8080

吊炸天的可视化安全框架,轻松搭建自己的认证授权平台!5842 作者: 来源: 发布时间:2023-8-8 08:17

控制台使用


接下来我们来体验下Keycloak的管理控制台,看看这个可视化安全框架有什么神奇的地方。
  • 首先输入我们的账号密码admin:admin进行登录;

吊炸天的可视化安全框架,轻松搭建自己的认证授权平台!391 作者: 来源: 发布时间:2023-8-8 08:17
  • 登录成功后进入管理控制台,我们可以发现Keycloak是英文界面,良心的是它还支持多国语言(包括中文),只要将Themes->Default Locale改为zh-CN即可切换为中文;

吊炸天的可视化安全框架,轻松搭建自己的认证授权平台!9387 作者: 来源: 发布时间:2023-8-8 08:17
  • 修改完成后保存并刷新页面,Keycloak控制台就变成中文界面了;

吊炸天的可视化安全框架,轻松搭建自己的认证授权平台!6772 作者: 来源: 发布时间:2023-8-8 08:17
  • Keycloak非常良心的给很多属性都添加了解释,而且还是中文的,基本看下解释就可以知道如何使用了;

吊炸天的可视化安全框架,轻松搭建自己的认证授权平台!6192 作者: 来源: 发布时间:2023-8-8 08:17
  • 在我们开始使用Keycloak保护应用安全之前,我们得先创建一个领域(realm),领域相当于租户的概念,不同租户之间数据相互隔离,这里我们创建一个macrozheng的领域;

吊炸天的可视化安全框架,轻松搭建自己的认证授权平台!4567 作者: 来源: 发布时间:2023-8-8 08:17
  • 接下来我们可以在macrozheng领域中去创建用户,创建一个macro用户;

吊炸天的可视化安全框架,轻松搭建自己的认证授权平台!5008 作者: 来源: 发布时间:2023-8-8 08:17
  • 之后我们编辑用户的信息,在凭据下设置密码;

吊炸天的可视化安全框架,轻松搭建自己的认证授权平台!1332 作者: 来源: 发布时间:2023-8-8 08:17
  • 创建完用户之后,就可以登录了,用户和管理员的登录地址并不相同,我们可以在客户端页面中查看到地址;

吊炸天的可视化安全框架,轻松搭建自己的认证授权平台!3859 作者: 来源: 发布时间:2023-8-8 08:17
  • 访问该地址后即可登录,访问地址:http://192.168.7.142:8080/auth/realms/macrozheng/account

吊炸天的可视化安全框架,轻松搭建自己的认证授权平台!6458 作者: 来源: 发布时间:2023-8-8 08:17
  • 用户登录成功后即可查看并修改个人信息。

吊炸天的可视化安全框架,轻松搭建自己的认证授权平台!6705 作者: 来源: 发布时间:2023-8-8 08:17

结合Oauth2使用


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

两种常用的授权模式


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

授权码模式


吊炸天的可视化安全框架,轻松搭建自己的认证授权平台!6288 作者: 来源: 发布时间:2023-8-8 08:17
  • (A)客户端将用户导向认证服务器;
  • (B)用户在认证服务器进行登录并授权;
  • (C)认证服务器返回授权码给客户端;
  • (D)客户端通过授权码和跳转地址向认证服务器获取访问令牌;
  • (E)认证服务器发放访问令牌(有需要带上刷新令牌)。

密码模式


吊炸天的可视化安全框架,轻松搭建自己的认证授权平台!7852 作者: 来源: 发布时间:2023-8-8 08:17
  • (A)客户端从用户获取用户名和密码;
  • (B)客户端通过用户的用户名和密码访问认证服务器;
  • (C)认证服务器返回访问令牌(有需要带上刷新令牌)。

密码模式体验

  • 首先需要在Keycloak中创建客户端mall-tiny-keycloak

吊炸天的可视化安全框架,轻松搭建自己的认证授权平台!2060 作者: 来源: 发布时间:2023-8-8 08:17
  • 然后创建一个角色mall-tiny

吊炸天的可视化安全框架,轻松搭建自己的认证授权平台!7297 作者: 来源: 发布时间:2023-8-8 08:17
  • 然后将角色分配给macro用户;

吊炸天的可视化安全框架,轻松搭建自己的认证授权平台!9964 作者: 来源: 发布时间:2023-8-8 08:17
  • 一切准备就绪,在Postman中使用Oauth2的方式调用接口就可以获取到Token了,获取token的地址:http://192.168.7.142:8080/auth/realms/macrozheng/protocol/openid-connect/token

吊炸天的可视化安全框架,轻松搭建自己的认证授权平台!6031 作者: 来源: 发布时间:2023-8-8 08:17

结合SpringBoot使用


接下来我们体验下使用Keycloak保护SpringBoot应用的安全。由于Keycloak原生支持SpringBoot,所以使用起来还是很简单的。
  • 由于我们的SpringBoot应用将运行在localhost:8088上面,我们需要对Keycloak的客户端的有效的重定向URI进行配置;

吊炸天的可视化安全框架,轻松搭建自己的认证授权平台!4267 作者: 来源: 发布时间:2023-8-8 08:17
  • 接下来我们需要修改应用的pom.xml,集成Keycloak;
<!--集成Keycloak-->
<dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-spring-boot-starter</artifactId>
    <version>14.0.0</version>
</dependency>
  • 再修改应用的配置文件application.yml,具体属性参考注释即可,需要注意的是给路径绑定好可以访问的角色;
# 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/*'
  • 接下来访问下应用的Swagger页面,访问的时候会跳转到Keycloak的控制台去登录,访问地址:http://localhost:8088/swagger-ui/

吊炸天的可视化安全框架,轻松搭建自己的认证授权平台!6726 作者: 来源: 发布时间:2023-8-8 08:17
  • 登录成功后,即可访问被保护的Swagger页面和API接口,一个很标准的Oauth2的授权码模式,流程参考授权码模式的说明即可。

吊炸天的可视化安全框架,轻松搭建自己的认证授权平台!2349 作者: 来源: 发布时间:2023-8-8 08:17

总结


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

参考资料

  • Keycloak官方文档:https://www.keycloak.org/getting-started/getting-started-docker
  • 保护SpringBoot应用安全:https://www.keycloak.org/docs/latest/securing_apps/index.html#_spring_boot_adapter

项目源码地址


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


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

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

吊炸天的可视化安全框架,轻松搭建自己的认证授权平台!7498 作者: 来源: 发布时间:2023-8-8 08:17

推荐阅读

  • 别去外包!
  • 菜鸟程序员VS大神程序员,这惊人差距,实在不忍直视...
  • Java 8 失宠!开发人员向 Java 11 转移...
  • 还在用Jenkins?试试Gitlab的CI/CD功能吧,贼带劲!
  • B 站崩了!受害程序员聊聊看法!
  • 再见笨重的ELK!这套轻量级日志收集方案要火!
  • 全新一代API网关,带可视化管理,文档贼友好!
  • 40K+Star!Mall电商实战项目开源回忆录!
  • mall-swarm 微服务电商项目发布重大更新,打造Spring Cloud最佳实践!






上一篇:我的网站又又又升级了!
下一篇:微信游戏摇心愿怎么玩?最全指南一文看懂!

鲜花

握手

雷人

路过

鸡蛋

评论

您需要登录后才可以发表言论 登录立即注册
创宇盾启航版免费网站防御网站加速服务
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.137.211.49,GMT+8, 2024-12-29 05:15 , Processed in 0.221002 second(s), 53 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2024 Discuz! Team.

关灯
扫一扫添加微信客服
QQ客服返回顶部
返回顶部