关于API和OAuth授权验证
2011-04-07 14:32
260 查看
前两天有事去市里了,发现火狐便携版仍然那么杯具。。订阅什么的就没管,积了好多。。博客更新是回来后再补的,订阅的童鞋应该发现的。。
这几天有折腾腾讯微博的API,(刚蓝屏一次,话说用win7快一年了,蓝屏不到10次,MS还不错),SDK什么的都没有ASP的,而吾辈偏偏就只会一点ASP。。。只好自己试着搞定,经过多方Google,终于明白点oauth是什么了,可是运行时总是失败。。。。。
两篇和API相关的文章:
OAuth是什么?:http://www.99ria.com/blog/?p=340
OAuth认证步骤:http://isouth.org/archives/286.html
还有就是新浪的API文档吧,腾讯的只是给出了需要的接口地址而已。。
比较麻烦的是oauth_signature(签名),我的理解就是好比你写了封信,你在信中表明了自己的身份(App Key),然后写了其他需要的内容,但是这封信是不是你写的呢?你需要将已经写好的内容(base string)以及一个Key(App Secret)作为参数,按照指定的签名方法(oauth_signature_method)进行运算,得出一个oauth_signature值(HMAC-SHA1 [Key,base_string])写在信的未尾作为签名;收信人在拿到信后,需要找出信中所述App Key对应的App Secret,然后自己进行下签名运算,看得出的oauth_signature值是不是和你写的一样。
App Key和App Secret就相当于帐号密码,但是oauth授权验证大部分都是跨站进行或者使用GET方式传递数据,为了安全而采用oauth_signature作为一次性密码。base_string里包含了一个表明当前时间的时间戳(oauth_timestamp,自1970年1月1日00:00:00 GMT以来的秒数)和一个32位的的随机字符串(oauth_nonce),想要逆向算出App Secret…………
上边说了OAuth授权的安全机制,现在再来看授权过程:
API通过以下四个步骤来完成认证授权并访问或修改受限资源的流程
1. 获取未授权的Request Token(temporary credentials)
2. 请求用户授权Request Token
3. 使用授权后的Request Token换取Access Token(token credentials)
4. 使用 Access Token 访问或修改受保护资源
其中1~3步使用https方式, 第4步使用http方式。
我们注册并使用腾讯微博,帐号密码及所发布的信息都保存在腾讯微博的服务器上,但是可以通过API接口将数据拿到站外使用,所以第一步,应用方帮用户向腾讯服务器进行“预约”,同时也是对应用方资格的一个验证,二、三步对用户身份进行验证,“办理”将数据拿到站外使用的其他“手续”,最后就可以在应用方 “访问或修改受保护资源”。
和OpenID挺像的,,只是OpenID应用中,对用户身份进行验证的一方只负责验证,不提供资源。
《关于API和OAuth授权验证》 http://www.wdssmq.com/post/ZuoWanDeMengHaiZhenShiXuanYiJiaKeHuanTuCaoChuMei.html
这几天有折腾腾讯微博的API,(刚蓝屏一次,话说用win7快一年了,蓝屏不到10次,MS还不错),SDK什么的都没有ASP的,而吾辈偏偏就只会一点ASP。。。只好自己试着搞定,经过多方Google,终于明白点oauth是什么了,可是运行时总是失败。。。。。
两篇和API相关的文章:
OAuth是什么?:http://www.99ria.com/blog/?p=340
OAuth认证步骤:http://isouth.org/archives/286.html
还有就是新浪的API文档吧,腾讯的只是给出了需要的接口地址而已。。
比较麻烦的是oauth_signature(签名),我的理解就是好比你写了封信,你在信中表明了自己的身份(App Key),然后写了其他需要的内容,但是这封信是不是你写的呢?你需要将已经写好的内容(base string)以及一个Key(App Secret)作为参数,按照指定的签名方法(oauth_signature_method)进行运算,得出一个oauth_signature值(HMAC-SHA1 [Key,base_string])写在信的未尾作为签名;收信人在拿到信后,需要找出信中所述App Key对应的App Secret,然后自己进行下签名运算,看得出的oauth_signature值是不是和你写的一样。
App Key和App Secret就相当于帐号密码,但是oauth授权验证大部分都是跨站进行或者使用GET方式传递数据,为了安全而采用oauth_signature作为一次性密码。base_string里包含了一个表明当前时间的时间戳(oauth_timestamp,自1970年1月1日00:00:00 GMT以来的秒数)和一个32位的的随机字符串(oauth_nonce),想要逆向算出App Secret…………
上边说了OAuth授权的安全机制,现在再来看授权过程:
API通过以下四个步骤来完成认证授权并访问或修改受限资源的流程
1. 获取未授权的Request Token(temporary credentials)
2. 请求用户授权Request Token
3. 使用授权后的Request Token换取Access Token(token credentials)
4. 使用 Access Token 访问或修改受保护资源
其中1~3步使用https方式, 第4步使用http方式。
我们注册并使用腾讯微博,帐号密码及所发布的信息都保存在腾讯微博的服务器上,但是可以通过API接口将数据拿到站外使用,所以第一步,应用方帮用户向腾讯服务器进行“预约”,同时也是对应用方资格的一个验证,二、三步对用户身份进行验证,“办理”将数据拿到站外使用的其他“手续”,最后就可以在应用方 “访问或修改受保护资源”。
和OpenID挺像的,,只是OpenID应用中,对用户身份进行验证的一方只负责验证,不提供资源。
《关于API和OAuth授权验证》 http://www.wdssmq.com/post/ZuoWanDeMengHaiZhenShiXuanYiJiaKeHuanTuCaoChuMei.html
相关文章推荐
- 关于API和OAuth授权验证
- 关于Sina WeiBo API OAuth 验证(ios)
- 基于OWIN WebAPI 使用OAuth授权服务【客户端验证授权(Resource Owner Password Credentials Grant)】
- 关于OAuth(即Open Authorization,开放授权)
- 关于filter web api mvc 权限验证 这里说的够详细了。。。
- 用Middleware给ASP.NET Core Web API添加自己的授权验证
- 关于导航,分享功能,oauth和sso授权,白名单,多次push,以及传值问题
- OAuth 授权与 OpenId 验证
- mui-OAuth模块管理客户端的用户登录授权验证功能,允许应用访问第三方平台的资源。
- 新浪开放平台---oauth2认证流程 casperjs自动登录和授权 api需要注意的问题及bug
- 关于微博服务端API的OAuth认证实现
- 关于微博服务端API的OAuth认证实现
- Oauth 验证用户授权登录 几点总结
- 新浪开放平台---oauth2认证流程 casperjs自动登录和授权 api需要注意的问题及bug
- 关于OAUTH授权,用户拒绝的处理
- 【7】.net WebAPI Owin OAuth 2.0 密码模式验证实例
- OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。 本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为R
- 学习使用天涯、微博API,OAuth授权
- 关于Oauth1.0认证及认证后调用API的方法
- 关于wayos授权验证及wayos破解的一些想法