先说三种角色:
1 Resource Owner,比如说我有一个亚马逊帐号,我就是这个亚马逊帐号的owner。
2 Resource Server,比如说亚马逊的服务器。
3 Client,一般指第三方的应用,即想使用Resource Owner在Resource Server上的Resource的应用。
以前Owner如果想让Client访问在Resource Server上的资源,无非就是将用户名和密码告诉Client,这样Cilent就可以代表Owner去执行相应的操作,这种情况下非常危险。将用户名和密码告诉Client其实是全权委托的方式,Client甚至可以更改密码,将自己变成Owner,这种方式的权限太大。
所以慢慢的发现,作为Resource Server可以暂时的允许Owner授权Client在一定时间内执行某一类操作。这种方式就是部分委托的方式,作为Owner可以随时取消授权,随时再授权等。
这就是从两方面来限制权利:
1 有效期,只有在有效期内这种权利才是有效的。
2 作用域,在有效期内只能执行特定的操作,像更改密码这种操作肯定不会给你授权的。
具体实现可以是如果Owner授权给Client某一种权限,那么作为Resource Server来讲,会给Client一个比如说token之类的凭证,然后Client凭此token就可以代表Owner执行某些操作了。
更加详细文档见http://tools.ietf.org/html/rfc6749
原文:http://blog.csdn.net/hongchangfirst/article/details/41649629
作者:hongchangfirst
hongchangfirst的主页:http://blog.csdn.net/hongchangfirst