Spring Security Oauth2:授权模式、简单模式 、密码模式 和 客户端模式
Oauth2的授权模式流程
1、先得到用户的授权grant
2、利用grant得到令牌token
3、根据token获取用户的信息
步骤1:客户端(第三方应用)向用户请求授权。
步骤2:用户单击客户端所呈现的服务授权页面上的同意授权按钮后,服务端返回一个授权许可凭证给客户端。
步骤3:客户端拿着授权许可凭证去授权服务器申请令牌。
步骤4:授权服务器验证信息无误后,发放令牌给客户端。
步骤5:客户端拿着令牌去资源服务器访问资源。
步骤6:资源服务器验证令牌无误后开放资源。
资源服务器和授权服务器一般是分开的,但是也存在合并的情况
Oauth2授权的四种模式
授权码模式:授权码模式(authorization code)是功能最完整、流程最严谨的授权模式。它的特点就是通过客户端的服务器与授权服务器进行交互,国内常见的第三方平台登录功能基本都是
使用这种模式。
简化模式:简化模式不需要客户端服务器参与,直接在浏览器中向授权服务器中请令牌,一般若网站是纯静态页面,则可以采用这种方式。
密码模式:密码模式是用户把用户名密码直接告诉客户端,客户端使用这些信息向授权服务器中请令牌。这需要用户对客户端高度信任,例如客户端应用和服务提供商是同一家公司。
客户端模式:客户端模式是指客户端使用自己的名义而不是用户的名义向服务提供者申请授权。严格来说,客户端模式并不能算作 OAuth 协议要解决的问题的一种解决方案,但是,对于开发者而言,在一些前后端分离应用或者为移动端提供的认证授权服务器上使用这种模式还是非常方便的。
没有登录也可以进行令牌的验证
开启cms,不开启oatuth-server
原因是没有Oauth2的授权
Oauth2四种授权模式
授权码模式:
授权码模式(authorization code)是功能最完整、流程最严谨的授权模式。它的特点就是通过客户端的服务器与授权服务器进行交互,国内常见的第三方平台登录功能基本 都是使用这种模式。
比如jd的qq登录
授权码(authorization code)方式,指的是第三方应用先申请一个授权码,然后再用该码获取令牌
http://localhost:8888/oauth/authorize?client_id=cms&client_secret=secret&response_type=code
先获取到的是授权码 E9OkUZ
拿到授权码之后,申请令牌
简化模式:
不通过第三方应用程序的服务器,直接在浏览器中向认证服务器申请令牌,跳过了“授权码”这个步骤。简化模式是相对于授权码模式而言的
相对于授权码模式,由于浏览器持有令牌,所以相对来说不安全
使用简化模式申请令牌
http://localhost:8888/oauth/authorize?client_id=cms&redirect_uri=http://127.0.0.1:8084/cms/login&response_type=token&scope=all
登录之后
直接发送令牌:10b0c2ee-948f-4495-b5a2-48d4141e3405
验证令牌:
使用令牌访问8084端口,可以成功访问
直接访问会返回未授权
密码模式
密码模式适用于 高度信任的模式,比如说我们的springCloud的各个微服务之间的授权
支付微服务想要访问订单微服务,那么首先需要使用密码模式从授权微服务中获得token。由于三者都是存在于同一个项目(公司),所以之间的互相访问是高度信任的
将密码给授权服务器,直接获取令牌 3215520b-4e4f-4115-91b7-af9e2767df07
客户端模式
http://localhost:8888/oauth/token?client_id=cms&client_secret=secret&grant_type=client_credentials&scope=all
直接发送post请求,就可以获得token,甚至不用输入密码,这是最简单的模式
这种模式跟密码模式一样,同样适用于前端分离的微服务架构中实现SSO(单点登录)
Spring Security Oauth2:授权模式、简单模式 、密码模式 和 客户端模式相关推荐
- Spring Security Oauth2 授权码模式下 自定义登录、授权页面
主要说明:基于若依springcloud微服务框架的2.1版本 嫌弃缩进不舒服的,直接访问我的博客站点: http://binarydance.top//aticle_view.html?aticle ...
- Spring Security OAuth2 授权码模式 (Authorization Code)
前言 Spring Security OAuth2 授权码模式 (Authorization Code) 应该是授权登录的一个行业标准 整体流程 首先在平台注册获取CLIENT_ID和CLIENT_S ...
- 将Spring Security OAuth2授权服务JWK与Consul 配置中心结合使用
将Spring Security OAuth2授权服务JWK与Consul 配置中心结合使用 概述 在前文中介绍了OAuth2授权服务简单的实现密钥轮换,与其不同,本文将通过Consul实现我们的目的 ...
- Spring Security OAuth2 授权失败(401)
Spring Cloud架构中采用Spring Security OAuth2作为权限控制,关于OAuth2详细介绍可以参考 http://www.ruanyifeng.com/blog/2014/0 ...
- Spring Security Oauth2 授权服务开发
2019独角兽企业重金招聘Python工程师标准>>> 集成开发环境 ·开发工具:Eclipse/Myeclipse/IntelliJ IDEA 任选其一 ·运行环境:jdk1.7及 ...
- spring security oauth2 授权服务器负载均衡解决方案
研究了好几天的授权服务对资源服务是如何实现负载均衡的 真的是丈二和尚摸不着头脑,研究了几天今天终于找到了一篇文章 真的是翻:烂了 奈何自己太菜 上一下资源服务的yml配置(oauth-server是注 ...
- Spring Security OAuth2 微服务认证中心自定义授权模式扩展以及常见登录认证场景下的应用实战
本文源码地址 后端:https://gitee.com/youlaitech/youlai-mall/tree/v2.0.1 前端:https://gitee.com/youlaiorg/mall-a ...
- 【Spring Cloud Alibaba 实战 | 总结篇】Spring Cloud Gateway + Spring Security OAuth2 + JWT 实现微服务统一认证授权和鉴权
一. 前言 hi,大家好~ 好久没更文了,期间主要致力于项目的功能升级和问题修复中,经过一年时间这里只贴出关键部分代码的打磨,[有来]终于迎来v2.0版本,相较于v1.x版本主要完善了OAuth2认证 ...
- Spring Security + OAuth2.0
授权服务器 授权服务器中有4个端点.说明如下: Authorize Endpoint :授权端点,进行授权. Token Endpoint :令牌端点,经过授权拿到对应的Token. lntrospe ...
- 004-云E办_学习Oathu2和Spring Security Oauth2
这里写目录标题 一.Oauth2简介 1.简介 2.分析Oauth2认证的例子,网站使用微信认证的过程: 3.Oauth2.0认证流程如下: 1.角色: 2.常用术语: 3.令牌类型 4.特点 二.授 ...
最新文章
- 求字符串全排列 python实现
- java out of range_关于Parameter index out of range求解决办法
- CSS3 Animation动画的十二原则
- 用Matplotlib跟踪疫情实时监控2019-nCoV
- python 使用 requests 做 http 请求
- 记一次安装docker的坑
- 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据同步...
- linux 使用expect 实现自动登录
- PaddlePaddle(1)——让人拍案叫绝的创意都是如何诞生的
- Bellman-Ford 算法及其优化
- MATLAB compatloose,麻烦帮忙看下这个视频
- U盘制作DOS启动盘MSDOS 7.10
- 苹果电脑Mac系统如何下载安装谷歌Chrome浏览器
- 心得体会计算机辅助设计实训,cad实训的心得体会模板
- origin 图片导出word
- 服务器虚拟化的重要性,服务器虚拟化:虚拟机迁移的重要性
- word的大纲视图用法你晓得了吗
- AndroidX ,support支持包
- 计算机本科毕业要求,计算机本科毕业论文要求.doc
- 村路安防工程建设展开 未来投入将进一步加大
热门文章
- 新款 MacBook Pro 评测:更好的性能、免费的刘海和更好的显示器
- php获取小米手环数据,小米运动App数据提取
- 华中农业大学计算机专业录取分数线,华中农业大学录取分数线2021是多少分(附历年录取分数线)...
- 阿里云OSS服务器上传图片并获取路径(SpringBoot)(☆)
- Creo 9.0安装教程
- 区块链/BlockChain+ProofOfWork
- 阿里云ACP云计算对象存储OSS例题
- 重要性采样(Importance Sampling)详细学习笔记
- git笔记(团队协作教程,GitHub操作)
- DialogFragment 白边去除