惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

W
WeLiveSecurity
博客园 - 【当耐特】
Microsoft Azure Blog
Microsoft Azure Blog
WordPress大学
WordPress大学
Stack Overflow Blog
Stack Overflow Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
IT之家
IT之家
Cloudbric
Cloudbric
The Register - Security
The Register - Security
小众软件
小众软件
PCI Perspectives
PCI Perspectives
G
Google Developers Blog
AI
AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Google DeepMind News
Google DeepMind News
Google DeepMind News
Google DeepMind News
宝玉的分享
宝玉的分享
Recent Commits to openclaw:main
Recent Commits to openclaw:main
量子位
TaoSecurity Blog
TaoSecurity Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
F
Full Disclosure
N
Netflix TechBlog - Medium
博客园_首页
Last Week in AI
Last Week in AI
A
Arctic Wolf
B
Blog RSS Feed
J
Java Code Geeks
C
Cybersecurity and Infrastructure Security Agency CISA
I
InfoQ
aimingoo的专栏
aimingoo的专栏
云风的 BLOG
云风的 BLOG
NISL@THU
NISL@THU
MyScale Blog
MyScale Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Jina AI
Jina AI
有赞技术团队
有赞技术团队
S
Schneier on Security
L
Lohrmann on Cybersecurity
P
Privacy & Cybersecurity Law Blog
T
Threat Research - Cisco Blogs
P
Palo Alto Networks Blog
S
Security @ Cisco Blogs
Security Archives - TechRepublic
Security Archives - TechRepublic
Security Latest
Security Latest
Vercel News
Vercel News
博客园 - 司徒正美
Webroot Blog
Webroot Blog
Hacker News: Ask HN
Hacker News: Ask HN
A
About on SuperTechFans

博客园 - Rickie

DeepSeek-V3 解读:优化效率与规模 一步一步构建RAG智能问答系统 Milvus向量数据库入门实践 LangChain轻松入门和开发实践 Hugging Face 轻松入门 PyTorch深度学习零基础入门 Spring Security开发实践 Redis 7.x 入门和开发实战 RedisInsight :Redis 官方可视化工具 Hadoop v3.1 大数据技术快速入门 《Apache RocketMQ 深入浅出》系列文章 Kafka v2.3 快速入门与实践 Apache Doris 轻松入门和快速实践 一步一步编译最新版Apache Doris 0.15版本的详细过程 COLA 4.x和DDD项目实践精粹 阿里开源COLA 4.0源码编译和部署过程 Java实体映射工具MapStruct 与BeanUtils性能比较 阿里DDD项目最佳实践-COLA 架构总览 Java实体映射工具MapStruct详解
Spring Security OAuth2+JWT开发实践
Rickie · 2023-07-16 · via 博客园 - Rickie

如今我们的生活已经进入信息化时代,习惯于将工作、学习贺生活都融入各种各样的web和移动端应用中。这些应用在给我们带来生活便利的同时,我们也不禁担心,与我们自身相关的数据是否处于安全包含之下。

这也是各类公司的技术团队需要考虑的问题,数据安全问题成为这些技术团队必须放在首位的非功能要求。

同时,随着软件环境和需求的变化,软件的架构由单体结构演变为分布式架构,如当前流行的微服务架构。

对微服务架构而言,安全性设计的核心还是认证和授权。但是因为微服务系统中服务之间可以存在相互的调用关系,针对每一个服务,一方面需要考虑来自客户端的请求,另一方面需要考虑来自另一个服务的请求,安全访问控制面临着从客户端到服务、从服务到服务的多种授权场景。

基于上述安全性开发需求,需要引入专门用于分布式环境的认证授权体系,而OAuth2 协议和JWT(Json web token)令牌是应对这种应用场景的有效解决方案。

专栏大纲

Spring Security 是一个功能强大且高度可定制的身份验证和访问控制框架。它是基于 Spring 和 Spring Boot、Spring Cloud 应用程序安全的实现标准。

Spring Security 是一个专注于为 Java 应用程序提供身份验证和授权的框架。与所有 Spring 项目一样,Spring Security 的真正强大之处在于它可以轻松扩展以满足自定义需求。

OAuth2 是一种安全的授权框架,提供了一套详细的授权机制。用户或应用可以通过公开的或私有的设置,授权第三方应用访问特定资源。它详细描述了系统中不同角色、用户、服务应用(比如API),以及客户端(比如网站或移动App)之间怎么实现相互认证。

OAuth2定义了一组相对复杂的规范,涉及到:Roles角色、Client Types客户端类型、Client Profile客户端描述、Authorization Grants认证授权、Endpoints终端等。

如今,OAuth 2.0已经是互联网上首选的授权协议。它被广泛使用,从大型互联网公司到小型创业公司,几乎所有的地方都在使用它。

越来越多的开发者开始学习并在实际项目中运用JWT(Json Web Token)技术来保护应用安全,很多公司的应用程序也开始使用JWT来管理用户会话信息。

JWT 提供了一种用于发布接入令牌(Access Token),并对发布的签名接入令牌进行验证的方法。 令牌(Token)本身包含了一系列声明,应用程序可以根据这些声明限制用户对资源的访问。

JWT是一种安全标准,基本思路就是用户提供用户名和密码给认证服务器,服务器验证用户提交信息信息的合法性;如果验证成功,会产生并返回一个Token(令牌),用户可以使用这个Token访问服务器上受保护的资源。

本专栏采取了循序渐进和开发实践相结合的编写方式,目标是帮助读者理解Spring Security、OAuth2和JWT等基本概念和工作原理,基于Spring Security 和OAuth2,结合JWT令牌,以最佳的方式来构建分布式环境的认证授权体系。