安全认证之JWT令牌
一、使用JWT的思路
1.1、使用JWT的思路
用户认证通过会得到一个JWT令牌,JWT令牌中已经包括了用户相关的信息,客户端只需要携带
JWT访问资源服务,资源服务根据事先约定的算法自行完成令牌校验,无需每次都请求认证服务完成授权。
1.2、JWT简介
JSON Web Tokens are an open, industry standard method for representing claims securely between two parties。JWT.IO allows you to decode, verify and generate JWT。JSON Web令牌是一种开放的行业标准方法,用于在双方之间安全的表示声明。JWT.IO允许你节码,验证和生成JWT。
JWT它定义了一种简介的、自包含的协议格式,用于在通信双方传递json对象,传递的信息经过数字签名可以被验证和信任。JWT可以使用HMAC算法或使用RSA的公钥/私钥对来签名,防止被篡改。
官网:https://jwt.io/
详细简介:https://jwt.io/introduction/
1.3、JWT令牌的优缺点
优点:
- Jwt基于json,非常方便解析
- 可以在令牌中自定义丰富的内容,易扩展
- 通过非对称加密算法及数字签名技术,JWT防止篡改,安全性高
- 资源服务使用JWT可不依赖认证服务即可完成授权
缺点:
- JWT令牌较长,占存储空间比较大
1.4、令牌结构
1.5、令牌如何工作
二、JWT入门
2.1、生成公钥和私钥
JWT令牌生成采用非对称加密算法
1、生成密钥证书
//采用RSA算法生成证书包含公钥和私钥
keytool -genkeypair -alias waggagkey -keyalg RSA -keypass waggag -keystore waggag.keystore -storepass waggagkeystore
Keytool 是一个java提供的证书管理工具
- alias: 密钥的别名
- keyalg: 使用的hash算法
- keypass: 密钥的访问密码
- keystore: 密钥库文件名,xc.keystore保存了生成的证书
- storepass: 密钥库的访问密码
2、查询证书信息
//查询证书信息
keytool -list -keystore waggag.keystore
3、删除别名
//删除别名
keytool -delete -alias waggagkey -keystore waggag.keystore
注意:密钥删除并不能删除文件
2.2、导出公钥
安装OpenSSL: http://slproweb.com/products.html
配置OpenSSL的PATH环境变量
//使用OpenSSL生成密钥
keytools -list -rfc --keystore waggag.keystore | openssl x509 -inform pem -pubkey
下面一段就是公钥内容
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn7/6W8BXEtfOr1GfNbue
lFC91NoBuO/j7I5Mnsr81d6M+s2AnOCxxX68+q9MI2Q5ZhBOueRxRuiE4lmbQij6
36MzIWGUybc7xSM6B5lk5CpuxzupffUTLVll2tjb4/8nXMlLHqAia3IM0ZdmvB09
JFHDomWjQycAYWVtsMedOW7eXaBVVqYIkLAPwnBk7npBQhjFBJ1c/d5YkwsM5WP5
+yt+I16T3bbadCAyC38rFlJZfoIgSPSvnadAuyH7JULwiSAZgMXYpqxBq00yppcw
KdNfE2e+Ncci7PlhXniUJ5D0HKqQCR+gpTS8roBve8HiTqQ9aD0hGeqlaFM6XKTM
tQIDAQAB
-----END PUBLIC KEY-----
安全认证之JWT令牌相关推荐
- Spring Cloud Feign如何实现JWT令牌中继以传递认证信息
在上一篇实现了Spring Cloud资源服务器的定制化,但是又发现了一个新的问题,Spring Cloud微服务调用的过程中需要令牌中继.只有令牌中继才能在调用链中保证用户认证信息的传递.今天就来分 ...
- .NET Core + JWT令牌认证 + Vue.js 通用动态权限(RBAC)管理系统框架[DncZeus]开源啦!!!...
DncZeus 前言 关于 DncZeus DncZeus = Dnc + Zeus "Dnc"--.Net Core 的缩写: "Zeus"--中文译为宙斯, ...
- Day241242.单点登录方案【Jwt令牌、sessionredis、CAS认证服务器】 -springsecurity-jwt-oauth2
1.单点登录与状态共享方案 随着企业的应用规模不断增大,一个单体应用很难满足用户量增长的需求,这就需要我们将单体应用集群化部署,或者将单体应用微服务化.在这个过程中,就涉及到两个问题: 集群应用之间如 ...
- 什么是JWT令牌认证?
当下,JWT(JSON Web Token)令牌认证已经变得越来越流行.本文主要介绍JWT令牌认证与传统的Session会话认证机制的区别. 为什么需要认证? HTTP是一种无状态协议,那就意味着当前 ...
- 从零开始超详细的Spring Security OAuth2.0实现分布式系统授权(注册中心+网关+认证授权服务(JWT令牌验证)+资源调用服务)
文章目录 一.OAuth2.0 1.介绍 2.例子 3.执行流程 二.Spring Cloud Security OAuth2 1.环境介绍 2.认证流程 三.整合分布式项目 1.技术方案 2.项目结 ...
- 开源干货!.NET Core + JWT令牌认证 + Vue.js通用动态权限(RBAC)管理系统框架[DncZeus]开源
DncZeus 前言 关于 DncZeus DncZeus = Dnc + Zeus "Dnc"–.Net Core 的缩写: "Zeus"–中文译为宙斯,是古 ...
- Spring Security OAuth2.0认证授权三:使用JWT令牌
历史文章 [Spring Security OAuth2.0认证授权一:框架搭建和认证测试] [Spring Security OAuth2.0认证授权二:搭建资源服务] 前面两篇文章详细讲解了如何基 ...
- ASP.NET Core 基于角色的 JWT 令牌
原文:https://bit.ly/3vYljq3 作者:Rick Strahl 翻译:精致码农-王亮 声明:我翻译技术文章不是逐句翻译的,而是根据我自己的理解来表述的.其中可能会去除一些本人实在不知 ...
- Angular之jwt令牌身份验证
Angular之jwt令牌身份验证 demo https://gitee.com/powersky/jwt 介绍 Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种 ...
- OAuth2.0 使用 JWT令牌
应用背景:当资源服务和认证服务不在一起时,资源服务使用RemoteTokenServices远程请求授权服务验证token,如果访问量较大较会影响系统的性能.这时可以考虑做进一步的优化,令牌采用JWT ...
最新文章
- jvm性能调优实战 - 30使用jmap和jhat摸清线上系统的对象分布
- (SpringMVC)数据处理及跳转
- dnslog盲注原理
- 11.SolrJ索引操作
- 【资源下载】921页《用Python3带你从小白入门机器学习实战》教程手册
- SLAM Cartographer(4)对象Node
- html5饼图的制作方法,html5制作饼图
- 利用ResultFilter实现asp.net mvc 页面静态化
- 计算机网络面试知识点
- Intel、AMD和Arm 告警:注意新的推断执行CPU漏洞!
- 【服务器】在 iPad 上运行 VSCode(宝塔+code server)
- 单片机原理及应用c语言版课后答案张才华,单片机原理及应用(C语言版)习题答案.doc...
- 第二届“马栏山”杯国际音视频算法大赛音乐节拍检测题参赛总结及分享(Rank7)
- 11款国外免费主机空间推荐_测试可用
- android手机rom物理存储器,手机ROM/RAM的区别
- java统计误码率_MATLAB通信工具箱来计算误码率
- 想学明白PostgreSQL,得先捋一捋体系架构
- ream完美转换XML、JSON 转载
- 深入探究宽字节注入漏洞与修补原理
- Vue+ant-design-pro(2)动态路由