OAuth与SpringSecurity

OAuth2.0是一个开放授权协议,允许用户让第三方应用安全地访问其存储在特定网站上的资源。SpringSecurity是一个强大的身份验证和访问控制框架,支持OAuth,提供用户认证、授权和攻击防护功能。它常用于简化企业系统的安全控制,保护Web应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.什么是OAuth?

1.1 OAuth产生背景

很多网站、APP 弱化甚至没有搭建自己的账号体系,而是直接使用社会化登录的方式,这样不仅免去了用户注册账号的麻烦、还可以获取用户的好友关系来增强自身的社交功能。

1.2 定义

  OAuth2.0(开放授权)是一个关于授权的开放的网络协议。它允许用户让第三方应用访问该用户在某一网站上存储的的资源(如:照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。

1.3 基本原理

  OAuth在第三方应用与服务提供商之间设置了一个授权层。第三方应用不能直接登录服务提供商,只能登录授权层,以此将用户与客户端区分开来。第三方应用登录授权层所用的令牌,与用户的密码不同。用户可以在登录授权的时候,指定授权层令牌的权限范围和有效期。

第三方应用登录授权层以后,服务提供商根据令牌的权限范围和有效期,向第三方应用开放用户资源。

1.4 作用

  让客户端安全可控地获取用户的授权,与服务提供商之间进行交互。可以免去用户同步的麻烦,同时也增加了用户信息的安全。

1.5 常用应用场景

用OAuth来实现第三方应用对我们API的访问控制;

登录第三方应用(APP或网页)时,经常会采用其他用户登录方式,比如QQ,微博,微信的授权登录(QQ用户登录)。

1.6 原理概要

新浪微博作为服务提供商,拥有用户的头像、昵称、邮箱、好友以及所有的微博内容,简书希望获取用户存储在微博的头像和昵称,假设它们是三个人:

简书问新浪微博:我想要获取用户 A 的头像和昵称,请你提供

微博说:我需要经过用户A 本人的许可,然后去问用户 A 是否要授权简书访问自己的头像和昵称

用户 A 对微博说:我给简书一个临时的钥匙,如果他给你出示了这把钥匙,你就把我的资料给他

简书使用户给它的钥匙获取用户头像和昵称信息。

2.SpringSecurity

2.1 介绍

Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架,并且能够对OAuth提供支持。

2.2 核心功能

2.2.1 用户认证 (你是谁)

用户认证指的是验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统。

用户认证一般要求用户提供用户名和密码。系统通过校验用户名和密码来完成认证过程。

2.2.2 用户授权 (你能干什么)

用户授权指的是验证某个用户是否有权限执行某个操作。

在一个系统中,不同用户所具有的权限是不同的。比如对一个文件来说,有的用户只能进行读取,而有的用户可以进行修改。一般来说,系统会为不同的用户分配不同的角色,而每个角色则对应一系列的权限。

2.2.3 攻击防护 (防止伪造身份)

总而言之,Spring Security是Spring 一个非常流行和成功的 Java 应用开发框架,从现在的行情来看Spring Security不仅可以减少企业系统安全控制编写大量重复代码的工作,还是用来保护web应用的首选。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值