在认证和授权的过程中涉及的三方包括:
1、服务提供方,用户使用服务提供方来存储受保护的资源,如照片,视频,联系人列表。
2、用户,存放在服务提供方的受保护的资源的拥有者。
3、客户端,要访问服务提供方资源的第三方应用,通常是网站,如提供照片打印服务的网站。在认证过程之前,客户端要向服务提供者申请客户端标识。
使用OAuth进行认证和授权的过程如下所示:
1、用户访问客户端的网站,想操作用户存放在服务提供方的资源。
2、客户端向服务提供方请求一个临时令牌。
3、服务提供方验证客户端的身份后,授予一个临时令牌。
4、客户端获得临时令牌后,将用户引导至服务提供方的授权页面请求用户授权。在这个过程中将临时令牌和客户端的回调连接发送给服务提供方。
5、用户在服务提供方的网页上输入用户名和密码,然后授权该客户端访问所请求的资源。
6、授权成功后,服务提供方引导用户返回客户端的网页。
7、客户端根据临时令牌从服务提供方那里获取访问令牌。
8、服务提供方根据临时令牌和用户的授权情况授予客户端访问令牌。
9、客户端使用获取的访问令牌访问存放在服务提供方上的受保护的资源。
三条腿的OAuth(3-Legged OAuth),这也是OAuth的标准版本。这里所谓的“三条腿”,指的是授权过程中涉及前面提到的三种角色,也就是:客户端,服务提供方,用户。不过有些情况下,不需要用户的参与,此时就产生了一个变体,被称作两条腿的OAuth(2-Legged OAuth),一般来说,访问私有数据的应用需要三条腿的OAuth,访问公共数据的应用需要两条腿的OAuth。
两条腿的OAuth和三条腿的OAuth相比,因为没有用户的参与,所以在流程中就不会涉及用户授权的环节,也就不需要使用Token,而主要是通 过Consumer Key和Consumer Secret来完成签名的,此时的Consumer Key和Consumer Secret基本等价于账号和密码的作用。