Board logo

标题: 基于 OAuth 安全协议的 Java 应用编程(2)OAuth 认证授权流程 [打印本页]

作者: look_w    时间: 2018-9-3 11:46     标题: 基于 OAuth 安全协议的 Java 应用编程(2)OAuth 认证授权流程

OAuth 认证授权流程在了解 OAuth 认证流程之前,我们先来了解一下 OAuth 协议的一些基本术语定义:
图 2. OAuth 授权流程(摘自 OAuth 规范)对于图 2 具体每一执行步骤,解释如下:
总的来讲,在 OAuth 的技术体系里,服务提供方需要提供如下基本的功能:
而对于消费方而言,需要如下的基本功能:
我们具体来看一个使用 OAuth 认证的例子。
在传统的网站应用中,如果您想在网站 A 导入网站 B 的联系人列表,需要在网站 A 输入您网站 B 的用户名、密码信息。例如,您登陆 Plaxo (https://www.plaxo.com ),一个联系人管理网站,当您想把 GMail 的联系人列表导入到 Plaxo,您需要输入您的 GMail 用户名 / 密码,如图 3 所示:
图 3. 在 Plaxo 获得 GMail 联系人在这里,Plaxo 承诺不会保存您在 Gmail 的密码。
如果使用 OAuth 认证,情况是不同的,您不需要向网站 A(扮演 Consumer 角色)暴露您网站 B(扮演 Service Provider 角色)的用户名、密码信息。例如,您登录 http://lab.madgex.com/oauth-net/googlecontacts/default.aspx 网站, 如图 4 所示:
图 4. 在 lab.madgex.com 获得 GMail 联系人点击“Get my Google Contacts”,浏览器将会重定向到 Google,引导您登录 Google,如图 5 所示:
图 5. 登录 Google登录成功后,将会看到图 6 的信息:
图 6. Google 对 lab.madgex.com 网站授权在您登录 Google,点击“Grant access”,授权 lab.madgex.com 后,lab.madgex.com 就能获得您在 Google 的联系人列表。
在上面的的例子中,网站 lab.madgex.com 扮演着 Consumer 的角色,而 Google 是 Service Provider,lab.madgex.com 使用基于 OAuth 的认证方式从 Google 获得联系人列表。
下一节,本文会给出一个消费方实现的例子,通过 OAuth 机制请求 Google Service Provider 的 OAuth Access Token,并使用该 Access Token 访问用户的在 Google 上的日历信息 (Calendar)。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0