柿子要挑软的捏,客户端凭证模式最简单,我们先来看看它是怎么玩的。

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 令牌颁发方式 之 客户端凭证模式相关推荐

  1. IdentityServer4系列 | 客户端凭证模式

    一.前言 从上一篇关于 快速搭建简易项目中,通过手动或者官方模板的方式简易的实现了我们的IdentityServer授权服务器搭建,并做了相应的配置和UI配置,实现了获取Token方式. 而其中我们也 ...

  2. 13 令牌颁发方式 之 刷新令牌

    Refresh Token(刷新令牌) 上一篇 授权码模式 就说了,在授权码模式颁发令牌时,当发现该客户端支持 REFRESH_TOKEN 模式时,还会返回刷新令牌. 客户端可以使用刷新令牌(refr ...

  3. IdentityServer4系列 | 资源密码凭证模式

    一.前言 从上一篇关于客户端凭证模式中,我们通过创建一个认证授权访问服务,定义一个API和要访问它的客户端,客户端通过IdentityServer上请求访问令牌,并使用它来控制访问API.其中,我们也 ...

  4. 10 令牌颁发 OAuth2TokenEndpointFilter

    前面我们已经讲完 客户端认证 的各种方式,那是令牌颁发的前提.这篇开始,我们就来研究下 令牌颁发 个中奥秘. 令牌颁发 授权服务器提供令牌颁发接口(/oauth2/token),由客户端发起请求,授权 ...

  5. [WCF安全系列]绑定、安全模式与客户端凭证类型:NetNamedPipeBinding、NetTcpBinding与NetMsmqBinding...

    在前面两篇(<绑定.安全模式与客户端凭证类型:BasicHttpBinding>和<绑定.安全模式与客户端凭证类型:WSHttpBinding与WSDualHttpBinding&g ...

  6. 使用命名管道的OVERLAPPED方式实现非阻塞模式编程 .

    命令管道是进程间通讯的一种常用方式,对于命令管道的介绍可以参考别的资料和书籍,这里推荐一个<VC++下命名管道编程的原理及实现>这篇博文,写得比较清楚.但是都是介绍了阻塞模式的编程,我这里 ...

  7. ModalPopupExtender控件主要有两种使用方式:客户端使用方式和服务器端使用方式

    ModalPopupExtender控件主要有两种使用方式:客户端使用方式和服务器端使用方式.这两种使用方式在ModalPopup的官方例子中都有介绍. 1.客户端使用方式 客户端使用方式又可以分为两 ...

  8. OAuth2.0学习(1-7)授权方式4-客户端模式(Client Credentials Grant)

    授权方式4-客户端模式(Client Credentials Grant) 客户端模式(Client Credentials Grant)指客户端以自己的名义,而不是以用户的名义,向"服务提 ...

  9. ntp协议客户端服务器模式,思科配置NTP客户端服务器模式

    思科配置NTP客户端服务器模式 内容精选 换一换 该操作指导安装工程师安装MRS集群所有服务(不包含Flume)的客户端.MRS针对不同服务提供了Shell脚本,供开发维护人员在不同场景下登录其对应的 ...

最新文章

  1. 更好用的3D打印“活体”墨水来了,合成生物的新工具包!
  2. 为什么我的开发方式如此愚蠢?
  3. 用户操作-用户详情服务器端代码实现
  4. java中的比较运算符_Java基础---Java中的比较运算符(十三)
  5. 转:正则表达式简介及在C++11中的简单使用
  6. 关于DLL中的哪段代码被执行的处理方法
  7. python如何跳出函数_python如何跳出函数
  8. 好玩,AI 让老照片动起来(附 APP 软件地址)
  9. python获取国内IP地址合集下发至网络设备
  10. ORA-16191: Primary log shipping client not logged on standby解决方法
  11. java汽车租赁系统(java租赁系统java共享汽车java汽车租借系统)java汽车租赁管理系统java自行车租赁系统共
  12. 浅谈京东静态html原理,京东首页前端架构设计.ppt
  13. Revit出图问题:打印机中新建纸张尺寸?批量导出图纸?
  14. JAVA使用HttpURLConnection请求HTTPS网站,不需要证书验证的DEMO教程
  15. OpenCV VideoWriter 写入自定义尺寸视频卡死问题
  16. openwrt sdk下交叉编译aria2c
  17. Beyond Compare 4访问手机或媒体播放器上的文件
  18. c++之gbk和utf8编码转换
  19. No value specified for parameter 15排查过程
  20. 递归--谢宾斯基三角形、赛尔平斯基地毯

热门文章

  1. Android-设置PullToRefresh下拉刷新样式
  2. IMPROVING REGRESSION TESTING QUERY REPLYING PROCEDURE USING SECURE OPTIMIZED GRAPH WALK SCHEME
  3. 【熬夜送书 | 第四期】python期末考试总结
  4. [转]幸福与贫富无关
  5. 泛微oa明细表添加按钮_泛微OA 新增功能:表格单建模详解.doc
  6. 老妈玩拇指锁屏,每个月居然比我挣得多!
  7. 怎么在抖音中一键复制微信号打开微信
  8. java infinity_Java中的INFINITY常量是什么?
  9. 【Qt入门第31篇】 网络(一)Qt网络编程简介
  10. oracle spool设置字符集,oracle spool简介+sql plus set常用设置