keycloak 微服务认证_【在家办公】keycloak认证客户端示例程序

如果你在测试keycloak的快速入门程序,会发现大部分代码是在3年前写的。多数情况是,下载下来以后跑不通的。这里以一个sso的例子,调试通quickstart的代码,并理解其中的原理。

一、    简要原理

  • Realm:Keycloak作为认证授权服务器,使用realm区分认证域,不同的reaml不能互相认证。

  • Client:在同一个realm下,需要创建client,一个client是一个授权策略、资源、范围及其对应关系的集合。一般需要指定回调uri,标明授权给的资源服务器。

  • 资源服务器:通常理解的应用服务,可以是web应用,可以是service。原先的做法是各应用建设认证和授权的模块。统一认证不仅可以做到少登录,还能依托认证授权服务器,实现统一的权限管理。

 0b1c8ff4c4cb97586f45a3a1f1c79edf.png

一般的,我们会在keycloak建一个realm,为对应的应用服务器新建client。同一个realm下的不同client,可以被相互认证。也就是说,A应用和B应用对应keycloak的不同client,用户在应用A登录后,无需登录即可访问B,只要有对应的资源权限。

以下就keycloak官方提供的示例代码,介绍一下。

二、    示例代码

官方提供的示例代码地址:

https://github.com/keycloak/keycloak-quickstarts

aefff7ed3f472c5893762457ea952c5d.png

这个示例项目跟随主项目更新频率特别高,第一次接触这个是5.0.0,上个月还在8.0.1,现在已经9.0.0了,仔细查看release note,发现主题框架和功能没有变化,新增了一些安全性的和易用性的改进,以及支持浏览器升级带来的安全性设置。

示例包含了keycloak官方文档中提到的各章节,分别都做了单独的项目示例,总数超过20个,java居多,部分是JavaScript,包括前端和后端。我们选取java的两个后端项目做示例。

示例代码的演示主题在各自readme中,不太能看出来。需要在官方文档对应章节了解。Java的对应了多种web容器,不过实际使用中,还是以springboot居多,于是在springboot相关的项目中,选择了一个web应用,选择一个服务型的应用。

Web应用地址:

https://github.com/keycloak/keycloak-quickstarts/tree/latest/app-springboot

服务应用地址:

https://github.com/keycloak/keycloak-quickstarts/tree/latest/service-springboot-rest

众所周知,示例代码一般是跑不起来的。我们改一下~

三、    代码调试

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值