OAuth 白话简明教程 3.客户端模式(Client Credentials)
转自:http://www.cftea.com/c/2016/11/6704.asp
- OAuth 白话简明教程 1.简述
- OAuth 白话简明教程 2.授权码模式(Authorization Code)
- OAuth 白话简明教程 3.客户端模式(Client Credentials)
- OAuth 白话简明教程 4.刷新 Access Token
- OAuth 白话简明教程 5.其他模式
客户端模式(Client Credentials),客户端授权模式。
客户端模式,在我看来,并不是 OAuth 的初衷。客户端模式要解决什么样的问题呢?
举例:有一个服务商提供了很多资源,天气、股票、火车时刻……如果这个服务商大方点,人人都可以抓取这些资源,也简单了,可是这个服务商要采用认证机制,只有认证了的第三方应用才可以使用这些资源。
所以这个服务商做了一个授权服务器,第三方应用纷纷在这上面注册,拿到了各自的 app_id、app_secret。按理说第三方应用在取天气时把 app_id、app_secret 传给天气服务器,然后天气服务器向授权服务器验证 app_id、app_secret,验证成功就返回天气,也能实现需求。
但是,这太简单了,怎么能够对得起人家高大上的平台呢?人家要整就要过度设计,简单问题就要复杂化。所以有了 OAuth 的客户端模式。
WebClient wc = new WebClient();
string jsonString = wc.DownloadString(url);
上面是微信获取 access_token 的 C# 代码,非常简单就拿到了。
- 第一行,构建 URL,传入 app_id 和 app_secret。
- 第二行、第三行,用 WebClient 获取返回结果。
- 然后就解析这个 JSON 字符串吧,就取到 access_token 了,相关技术:C# 中处理 JSON。
- 最后就凭这个 access_token 去使用资源服务器的服务吧。(并不是直接凭 app_id、app_secret 去使用资源服务器的服务的,中间隔了个 access_token,这就是我前面说的简单问题复杂化,当然大平台考虑更细的安全性,复杂化还是有必要的。)
发现没,到这里都在提第三方应用、授权服务器、资源服务器(上面提到的天气服务器就是一个资源服务器),并没有提用户,这就是 OAuth 的客户端模式。
可以看出客户端模式完全就是授权码模式的下半部分,也就是省去用户登录嘛,其他大同小异。
所以,不作介绍了,反正说得再详细,各大公司也不一定是完全遵照这个来的。
OAuth 白话简明教程 3.客户端模式(Client Credentials)的更多相关文章
- OAuth 白话简明教程 5.其他模式
转自:http://www.cftea.com/c/2016/11/6706.asp OAuth 白话简明教程 1.简述 OAuth 白话简明教程 2.授权码模式(Authorization Code ...
- OAuth 白话简明教程 2.授权码模式(Authorization Code)
转自:http://www.cftea.com/c/2016/11/6703.asp OAuth 白话简明教程 1.简述 OAuth 白话简明教程 2.授权码模式(Authorization Code ...
- OAuth 白话简明教程 1.简述
转自:http://www.cftea.com/c/2016/11/6702.asp OAuth 白话简明教程 1.简述 OAuth 白话简明教程 2.授权码模式(Authorization Code ...
- OAuth 白话简明教程 4.刷新 Access Token
转自:http://www.cftea.com/c/2016/11/6705.asp OAuth 白话简明教程 1.简述 OAuth 白话简明教程 2.授权码模式(Authorization Code ...
- (转)基于OWIN WebAPI 使用OAuth授权服务【客户端模式(Client Credentials Grant)】
适应范围 采用Client Credentials方式,即应用公钥.密钥方式获取Access Token,适用于任何类型应用,但通过它所获取的Access Token只能用于访问与用户无关的Open ...
- 基于 IdentityServer3 实现 OAuth 2.0 授权服务【客户端模式(Client Credentials Grant)】
github:https://github.com/IdentityServer/IdentityServer3/ documentation:https://identityserver.githu ...
- 基于OWIN WebAPI 使用OAuth授权服务【客户端模式(Client Credentials Grant)】
适应范围 采用Client Credentials方式,即应用公钥.密钥方式获取Access Token,适用于任何类型应用,但通过它所获取的Access Token只能用于访问与用户无关的Open ...
- IdentityServer4 (1) 客户端授权模式(Client Credentials)
写在前面 1.源码(.Net Core 2.2) git地址:https://github.com/yizhaoxian/CoreIdentityServer4Demo.git 2.相关章节 2.1. ...
- asp.net core IdentityServer4 实现 Client credentials(客户端凭证)
前言 OAuth 2.0默认四种授权模式(GrantType) 授权码模式(authorization_code) 简化模式(implicit) 密码模式(resource owner passwor ...
随机推荐
- sencha touch 在线实战培训 第一期 第四节
2014.1.4晚上8点开的课 第一节收费课程,还是有几位同学付费了,这些课程也录像了的,以后也会持续销售. 本期培训一共八节,前三堂免费,后面的课程需要付费才可以观看. 本节内容: ...
- 记录一下使用Ubuntu16.0.4配置和使用docker registry
h1, h2, h3, h4, h5, h6, p, blockquote { margin: 5px; padding: 5; } body { font-family: "Helveti ...
- 解决启动Distributed Transaction Coordinator服务出错的问题
解决启动Distributed Transaction Coordinator服务出错的问题 "Windows 不能在 本地计算机 启动 Distributed Transaction ...
- 9.6Django
2018-9-6 12:56:32 2018-9-6 18:32:22 把那个用户列表的页面优化了一下!用了老师更好看的页面,但是功能还是那些! 就是修改一下url就好! 放在我我的github : ...
- Numpy基础学习与总结
Numpy类型学习 1.数组的表示 import numpy as np In [2]: #numpy核心是高维数组,库中的ndarray支持多维数组,同时提供了数值运算,可对向量矩阵进行运算 In ...
- 江南OJ 1151 - 还是晒太阳 - [状压DP]
题目链接:校内OJ的题目,就不放链接了. PS.可以说是本次9月月赛唯一的一道有一定难度的题目了. 题解: 考虑状压DP,假设 $sta$ 是一个二进制数,代表当前 $n$ 个人有几个是在队伍里的,剩 ...
- Oracle备份恢复之无备份情况下恢复undo表空间
UNDO表空间存储着DML操作数据块的前镜像数据,在数据回滚,一致性读,闪回操作,实例恢复的时候都可能用到UNDO表空间中的数据.如果在生产过程中丢失或破坏了UNDO表空间,可能导致某些事务无法回滚, ...
- Oracle体系结构之控制文件的多路复用技术
在Windows操作系统中,如果注册表文件被损坏了,就会影响操作系统的稳定性.严重的话,会导致操作系统无法正常启动.而控制文件对于Oracle数据库来说,其作用就好象是注册表一样的重要.如果控制文件出 ...
- Metasploit services
漏洞挖掘/漏洞分析-- Cve.mitre.org www.corelan.be----geek of pentesters http://wrox.cn/article/100048133/ ...
- matplotlib基本使用方法
[微语]人生有可为之事,也有不可为之事.可为之事,当尽力为之,此谓尽性,不可为之事,当尽心为之,此谓知命. 三人行必有我师 官方参考API:https://matplotlib.org/tutoria ...