带你认识什么是OAuth2和Spring认证服务器

本文深入介绍OAuth2授权框架,解释其工作原理,并通过Spring搭建认证服务器和资源服务器,阐述Authorization Code模式的实现流程。文章还提到了Spring的授权服务器项目现状和未来方向。
摘要由CSDN通过智能技术生成

OAuth 2.0 provides specific authorization flows for web applications, desktop applications, mobile phones, and smart devices.

    每一个项目的设计都离不开认证授权,即使是公开访问的资源,也属于一种特殊的匿名认证。作为一个合格的Java研发,你需要知道认证的几种方式,怎么设计一个支持各种方式登录的服务器,如何控制第三方应用程序访问用户资源,本文带你一步步揭开认证授权的面纱!

欢迎关注我技术公众号 ,微信搜索 sugelakai

微信公众号 sugelakai

什么是OAuth2?

OAuth2.0授权框架使第三方应用程序能够代表资源所有者通过协调资源所有者和HTTP服务之间的批准交互,或允许第三方应用程序代表自己获得对HTTP服务的有限访问。

说人话:OAuth2是一种协议,用来定义如果有人想接入你写的服务,如何获取用户的授权并访问用户在你服务器上的资源,OAuth2就规定了整个流程该如何交互。

再通俗点,你点了个外卖,告诉外卖小哥你的地址。你家小区,就是你的服务器,你家小区大门口有人脸认证开门,如果有外卖进入,肯定进不来,那外卖小哥就给你打电话,你给保安大哥说给他个临时密码让他进来吧,然后外卖小哥把外卖送到你的地址。这就是OAuth2。

OAuth2.0中的角色

resource Owner 资源拥有者,简单理解为用户 (你自己)

resource server 资源服务,可以简单理解为接口提供者 (外卖地址)

client 客户端,想要接入的应用,包含第三方应用 (外卖小哥)

authorization server 认证服务器,负责颁发校验token(门口保安)

OAuth2.0的认证方式

Authorization Code

Implicit

Resource Owner Password Credential

Client Credentials

本篇文章主讲第一种也是最常用的一种Authorization Code ,

先看下该模式的整个流程。

流程图

A: 客户端发起认证请求,开启整个认证流程,通常是用浏览器,请求resource owner(资源拥有者,也就是用户)来同意自己获取该用户在resource server上的资源(通常是接口)

B:resource owner 资源拥有者进行认证,选择授权还是拒绝

C:如果资源拥有者同意授权,authorization server返回code

D: 客户端携带上一步返回的code请求token

E: 认证服务返回access_token 和 refresh_token

整个流程就是这样,具体的细节参数下面讲,可能有点绕,先有一个感性的认识,

基于上面流程分析一下gitlab使用github的第三方登录。

Gitlab登录页面,可以看到有Sign in with GitHub。那么GitLab在OAuth2.0的角色

是什么呢?

答案是client

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值