OAuth介绍

来源:互联网 发布:cf自动准备辅助源码 编辑:程序博客网 时间:2024/04/30 18:13

OAuth是一个开放的鉴权协议.

OAuth为应用程序(web,桌面应用程序)安全地访问用户私有的资源提供保障.

 

为了更好的理解OAuth协议,OAuth官方给出的例子:有些豪华车都配备了一种临时性的钥匙,停车场服务人员可以使用这种临时性的钥匙来泊车.当然,对这种临时性的钥匙有一定控制:不能开远了,不能打开后备箱等.

 

OAuth有如下特点:

  1. 简单:通过token的方式来访问需要授权的资源
  2. 安全:使用过程中不泄露资源用户的信息(用户名,密码)
  3. 开放:任何组织和个人都可以根据协议的要求来进行鉴权.

 

OAuth协议中的几个角色:

service provider: 权限的管理者,认证使用者的身份,将使用者的使用申请提交给user审批,并通知service consumer

service consumer:权限的使用者,需要以user代理人的身份来使用该用户私有的资源

user:资源的拥有者,权限的审批者

 

OAuth鉴权的步骤:

  1. 得到未授权的request token: service consumer发送签名的请求给service provider, service provider返回可使用的request token或者错误信息;
  2. user审核service comsumer的授权请求: service consumer进一步请求用户的授权, service provider要求用户对授权请求进行审核,审核结果(verification code)以callback的形式或者其他方式通知service consumer;
  3. 得到access token:service consumer发送签名的请求给service provider来得到access token,如果成功返回access token,此后service consumer可以根据access token来访问该用户的私有资源.

 

目前主要应用在Restful webService方面

 

 

参考资料:

http://oauth.net/core/1.0a/

book:RESTful Java Web Services