java jwks_Java SpringBoot 如何使用 IdentityServer4 作为验证服务器学习笔记

本文介绍了如何使用IdentityServer4作为Java SpringBoot应用的认证服务器和令牌颁发服务器。首先解释JWT的基本概念,然后详细阐述了如何搭建IdentityServer4服务器,包括获取令牌的端点和公钥开放端点。接着,展示了在Java SpringBoot中通过自省端点和公钥本地解析两种方式验证JWT的实现代码,最后提到了验证过程中涉及的包和依赖。
摘要由CSDN通过智能技术生成

这边记录下如何使用IdentityServer4 作为 Java SpringBoot 的 认证服务器和令牌颁发服务器。本人也是新手,所以理解不足的地方请多多指教。另外由于真的很久没有写中文了,用词不太恰当的地方也欢迎新手大佬小伙伴指出,一起进步。另外这边令牌的获取需要手动使用postman根据令牌端点获取,然后放在请求头里面通过postman发给Java的demo,本身这个demo没有取令牌的功能,请各位注意。

背景知识:什么是JWT

第一部分:IdentityServer4的服务器搭建

第二部分:Java SpringBoot框架和IDS4的结合

1.什么是Jwt?

关于什么是Jwt,包括里面的参数是什么,这边可以参考下面这个链接做一些了解:

下面这个链接是全英文的,但是对jwt是什么是比较详细的,英文好的同学可以上了。

这个链接主要说了jwt和refernce token不一样,真的很重要,里面也有些说的不对,我就被坑了:

2.IdentityServer认证&令牌颁发服务器准备

关于IdentityServer4怎么搭建使用,网上已经有太多的教程了,这边我就不多做别的讲解,因为我也是新手。但是我目前自己正在使用的是一个带UI界面的IdentityServer4和Identity(作为用户管理的部分)结合的服务器,很多东西已经帮你搭建好了,对新手可以说是十分友好,省去了探索的步骤。但是不建议新手直接使用,作为自己搭建IdentityServer后还有对IdentitySevrer4一些参数不太理解的地方,可以做进一步的理解。下面是IdentityServer4 UI 的github源码链接:

这边要是有人感兴趣配置这个IdentityServer4 UI,后期也会记录下相对的这个事怎么搭建的。这个IdentityServer上面在配置相关的信息,比如API,Client,还有用户资源之后,我们会用到如下端点:

http://x.x.x.x:5000/connect/token请求令牌的端口,需要提供客户端id,客户端secret,用户名字,用户密码,还有授权方式,这里我选的grant_type是 password。

http://x.x.x.x:5000/connect/introspect令牌自省端点,很多国内的说法是用于refenrece token,然后还有很多大佬翻译的官方文档根本就是没认真翻译(估计也不知道实际意思)。这个端点实际上可以用于那些没由相应的包或者library可以用于解析jwt令牌的程序来验证令牌的合法性。只是注意这边唯一不同的是,对于renfence token和jwt token 要发给这个端点的参数是不一样的。对于reference,要发的是 client_id 和 secret。但是对于 jwt token,要发的是 base64编码在请求头部的 Api_name 和 Api_secret, 这里就是为什么 Api有secret这个参数,但是我们几乎没有用到过。

http://x.x.x.x:5000/.well-known/openid-configuration/jwks (公钥开放端点) 用于获取解析jwt令牌的公钥开放端点。

3.Java SpringBoot

关于如何开启一个新的项目,这边就不多说了,网上教程很多,我们直接进入正题,这边我用的Intellij IDEA。然后注册了过滤器,然后这边提供了两种办法验证jwt:

通过自省端点返回验证结果,使用http://x.x.x.x:5000/connect/introspect

通过公钥开放端点本地解析token,使用http://x.x.x.x

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值