11 令牌颁发方式 之 客户端凭证模式
柿子要挑软的捏,客户端凭证模式最简单,我们先来看看它是怎么玩的。
Client Credentials(客户端凭证模式)
好像真的简单到没什么好说的,客户端凭证模式就是只需要客户端信息,只要通过了客户端认证那一关,就能拿到令牌。(我们在之前客户端认证系列文章中,大都是用的这种模式测试)
示例
环境准备
授权服务器
基于 快速搭建一个授权服务器 文章中的示例,修改 SecurityConfiguration 中 registeredClientRepository() 方法,如下:
@Beanpublic RegisteredClientRepository registeredClientRepository() {RegisteredClient registeredClient = RegisteredClient.withId(UUID.randomUUID().toString()).clientId("client1").clientSecret("{noop}secret1")// 客户端认证方式.clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_POST)// 令牌颁发方式.authorizationGrantType(AuthorizationGrantType.CLIENT_CREDENTIALS).build();return new InMemoryRegisteredClientRepository(registeredClient);}
测试
使用Postman测试,在Body栏,填入’grant_type=client_credentials
’、client_id、client_secret,发送请求。
如上,成功获取到令牌(access_token)。这就是客户端模式,就是这么简单。
源码分析
OAuth2ClientCredentialsAuthenticationConverter
判断请求参数 grant_type
的值是否为 client_credentials
,若是,则构建 OAuth2ClientCredentialsAuthenticationToken
。
OAuth2ClientCredentialsAuthenticationProvider
核心就是生成令牌,没啥了。
end
11 令牌颁发方式 之 客户端凭证模式相关推荐
- IdentityServer4系列 | 客户端凭证模式
一.前言 从上一篇关于 快速搭建简易项目中,通过手动或者官方模板的方式简易的实现了我们的IdentityServer授权服务器搭建,并做了相应的配置和UI配置,实现了获取Token方式. 而其中我们也 ...
- 13 令牌颁发方式 之 刷新令牌
Refresh Token(刷新令牌) 上一篇 授权码模式 就说了,在授权码模式颁发令牌时,当发现该客户端支持 REFRESH_TOKEN 模式时,还会返回刷新令牌. 客户端可以使用刷新令牌(refr ...
- IdentityServer4系列 | 资源密码凭证模式
一.前言 从上一篇关于客户端凭证模式中,我们通过创建一个认证授权访问服务,定义一个API和要访问它的客户端,客户端通过IdentityServer上请求访问令牌,并使用它来控制访问API.其中,我们也 ...
- 10 令牌颁发 OAuth2TokenEndpointFilter
前面我们已经讲完 客户端认证 的各种方式,那是令牌颁发的前提.这篇开始,我们就来研究下 令牌颁发 个中奥秘. 令牌颁发 授权服务器提供令牌颁发接口(/oauth2/token),由客户端发起请求,授权 ...
- [WCF安全系列]绑定、安全模式与客户端凭证类型:NetNamedPipeBinding、NetTcpBinding与NetMsmqBinding...
在前面两篇(<绑定.安全模式与客户端凭证类型:BasicHttpBinding>和<绑定.安全模式与客户端凭证类型:WSHttpBinding与WSDualHttpBinding&g ...
- 使用命名管道的OVERLAPPED方式实现非阻塞模式编程 .
命令管道是进程间通讯的一种常用方式,对于命令管道的介绍可以参考别的资料和书籍,这里推荐一个<VC++下命名管道编程的原理及实现>这篇博文,写得比较清楚.但是都是介绍了阻塞模式的编程,我这里 ...
- ModalPopupExtender控件主要有两种使用方式:客户端使用方式和服务器端使用方式
ModalPopupExtender控件主要有两种使用方式:客户端使用方式和服务器端使用方式.这两种使用方式在ModalPopup的官方例子中都有介绍. 1.客户端使用方式 客户端使用方式又可以分为两 ...
- OAuth2.0学习(1-7)授权方式4-客户端模式(Client Credentials Grant)
授权方式4-客户端模式(Client Credentials Grant) 客户端模式(Client Credentials Grant)指客户端以自己的名义,而不是以用户的名义,向"服务提 ...
- ntp协议客户端服务器模式,思科配置NTP客户端服务器模式
思科配置NTP客户端服务器模式 内容精选 换一换 该操作指导安装工程师安装MRS集群所有服务(不包含Flume)的客户端.MRS针对不同服务提供了Shell脚本,供开发维护人员在不同场景下登录其对应的 ...
最新文章
- 更好用的3D打印“活体”墨水来了,合成生物的新工具包!
- 为什么我的开发方式如此愚蠢?
- 用户操作-用户详情服务器端代码实现
- java中的比较运算符_Java基础---Java中的比较运算符(十三)
- 转:正则表达式简介及在C++11中的简单使用
- 关于DLL中的哪段代码被执行的处理方法
- python如何跳出函数_python如何跳出函数
- 好玩,AI 让老照片动起来(附 APP 软件地址)
- python获取国内IP地址合集下发至网络设备
- ORA-16191: Primary log shipping client not logged on standby解决方法
- java汽车租赁系统(java租赁系统java共享汽车java汽车租借系统)java汽车租赁管理系统java自行车租赁系统共
- 浅谈京东静态html原理,京东首页前端架构设计.ppt
- Revit出图问题:打印机中新建纸张尺寸?批量导出图纸?
- JAVA使用HttpURLConnection请求HTTPS网站,不需要证书验证的DEMO教程
- OpenCV VideoWriter 写入自定义尺寸视频卡死问题
- openwrt sdk下交叉编译aria2c
- Beyond Compare 4访问手机或媒体播放器上的文件
- c++之gbk和utf8编码转换
- No value specified for parameter 15排查过程
- 递归--谢宾斯基三角形、赛尔平斯基地毯
热门文章
- Android-设置PullToRefresh下拉刷新样式
- IMPROVING REGRESSION TESTING QUERY REPLYING PROCEDURE USING SECURE OPTIMIZED GRAPH WALK SCHEME
- 【熬夜送书 | 第四期】python期末考试总结
- [转]幸福与贫富无关
- 泛微oa明细表添加按钮_泛微OA 新增功能:表格单建模详解.doc
- 老妈玩拇指锁屏,每个月居然比我挣得多!
- 怎么在抖音中一键复制微信号打开微信
- java infinity_Java中的INFINITY常量是什么?
- 【Qt入门第31篇】 网络(一)Qt网络编程简介
- oracle spool设置字符集,oracle spool简介+sql plus set常用设置