Google OAUTH + OpenID 给第三方授权
From Evernote: |
缩写 13. Google OAUTH + OpenID 给第三方授权 |
Client ID: |
133501856298.apps.googleusercontent.com
|
---|---|
Client secret: |
X-rMJocMGJ3DDNbMgS-iFO9X
|
Redirect URIs: | http://www.hanborq.com/oauth2callback |
JavaScript origins: | http://www.hanborq.com |
Google API | Service name |
---|---|
Google Analytics Data API |
https://www.google.com/analytics/feeds/
|
Google Base Data API |
http://www.google.com/base/feeds/
|
Google Sites Data API |
http(s)://sites.google.com/feeds/
|
Blogger Data API |
http://www.blogger.com/feeds/
|
Book Search Data API |
http://www.google.com/books/feeds/
|
Calendar Data API |
http(s)://www.google.com/calendar/feeds/
|
Contacts Data API |
http(s)://www.google.com/m8/feeds/
|
Documents List Data API |
http(s)://docs.google.com/feeds/
|
Finance Data API |
http://finance.google.com/finance/feeds/
|
Gmail Atom feed |
https://mail.google.com/mail/feed/atom/
|
Health Data API |
https://www.google.com/health/feeds/ https://www.google.com/h9/feeds/ (H9 sandbox)
|
Maps Data API |
http://maps.google.com/maps/feeds/
|
Picasa Web Albums Data API |
http://picasaweb.google.com/data/
|
Sidewiki Data API |
http://www.google.com/sidewiki/feeds/
|
Spreadsheets Data API |
http(s)://spreadsheets.google.com/feeds/
|
Webmaster Tools API |
http://www.google.com/webmasters/tools/feeds/
|
YouTube Data API |
http://gdata.youtube.com
|
可以通过Google OAuth服务为Google 用户的资源进行授权,如用户通过第三方软件调用Google Open API操作用户的资源时,就需要用户对第三方软件授权;通过Google OpenID服务可以打通Google与其他支持OpenID服务网站之间的用户体系。现在假如有另外一个网站,也想开放自己的Open API服务,但是又不想实现OAuth服务(毕竟实现OAUTH服务还是需要一些成本的),那该怎么办?它可不可以使用Google 提供的OAuth服 务,授权认证交给Google来处理?可以!但是OAuth授权也是基于用户登录来实现的,Google OAuth用户体系只是Google的用户体系,那又怎么办了?OpenID!对,将网站的用户体系与Google用户体系打通,并且使用Google OAuth服务来实现授权,即Google提出的OpenID + OAUTH的解决方案。
一、 OAUTH 与 OpenID
前面两篇文章对 OAuth 与?OpenID 均做过介绍,且Google均提供了这两种服务,在此我们先简要的回顾这两种服务,具体介绍请参见相关文章。
OAUTH是一种开放的,基于用户登录的授权认证方式。如当用户使用第三方软件调用Google Open API去操作自己的Google服务资源时,用户就要先对该软件授权。授权过程中,第三方软件会引导用户登录Google,进行用户鉴权,用户通过 Google身份鉴权后才能对第三方软件授权。显然,Google OAUTH只能对Google用户进行鉴权,其他用户体系的用户不能直接鉴权。
OpenID是一种开放的,去用户中心的,用于打通各网站之间的用户体系的服务。在支持OpenID的网站间,你可以使用任何一个 网站的帐号或者 Open ID去登录任何一个网站。OpenID提供了类似单点登录的用户体验,并且用户无需在各个网站上注册就可以使用该网站的资源,将用户从繁重的帐号注册与管 理工作中解脱出来。当用户使用OpenID登录没注册的网站过程中,网站会引导用户登录OP(用户OpenID注册的网站),请求 OP对用户身份鉴权,用 户通过OP鉴权,网站才会容许用户登录。
若将OpenID与Google OAUTH结合,OpenID将第三方网站的用户体系与Google用户体系打通后,第三方网站便可使用Google OAUTH服务,对自己的用户进行授权!交互示意图如下图所示:
二、 Google OAUTH + OpenID解决方案
Google提出了OpenID + OAUTH的解决方案,将两者揉合在一起,具体流程如下图所示:
1. Web应用请求用户登录;
2. 用户选择使用Google OpenID进行登录;
3. Web应用请求发现Google认证服务URL;
4. Google向Web应用返回XRDS信息,其中包含Google认证服务URL;
5. Web应用请求用户登录Google服务,通过请求用户授权;
6. Google引导用户登录;
7. 用户输入用户名密码进行登录,同时确认是否对第三方软件授权;
8. Google认证中心返回用户ID与授权的Request Token给Web应用;
9. 用户可以访问受保护的资源,同时可以继续第七部中Oauth认证余下的环节;
从上面的流程第五步可以看出,Google解决方案中,将OAUTH与OpenID的登录操作合并在一起、并且在登录的同时向 Google发送 Oauth请求,请求用户授权。这样一来,在第五步中,用户登录Google(OpenID中Google对用户鉴权),同时请求对用户授权(OAUTH 中对用户授权,同时无需再次登陆,因为前面OpenID已经登录过了)。
三、Google OAUTH+OpenID Demo
Google提供了OAUTH + OpenID的DEMO,Demo演示地址如下:http://googlecodesamples.com/hybrid/
刚开始,用户既没OpenID登录也没OAUTH授权,如下图所示:
接着,点击上图中login按钮请求以Google提供的OpenID登录,如下图所示:
输入用户名与密码登录后,Google提醒您即将登陆到外部网站,外部网站申请对您的资源进行授权,您是否同意,如下图所示:
点击继续登录后,登录成功,并且返回授权的Token,如下图所示:
Google OAUTH + OpenID 给第三方授权相关推荐
- Spring security 集成 JustAuth 实现第三方授权登录
Spring security 集成 JustAuth 实现第三方授权登录脚手架: 一.特性 spring security 集成 JustAuth 实现第三方授权登录 : 此项目从 用户管理脚手架( ...
- Oauth 第三方授权登陆 facebook google twitter instagram
因为公司项目要用到第三方授权,所以记录学习一下 参考学习链接 OAuth 2.0 的简单解释 OAuth 2.0 的四种方式 流程图 (A)用户打开客户端以后,客户端要求用户给予授权. (B)用户同意 ...
- ASP.NET Core 认证与授权[3]:OAuth OpenID Connect认证
在上一章中,我们了解到,Cookie认证是一种本地认证方式,通常认证与授权都在同一个服务中,也可以使用Cookie共享的方式分开部署,但局限性较大,而如今随着微服务的流行,更加偏向于将以前的单体应用拆 ...
- OAUTH之 钉钉第三方授权登录
文章目录 OAUTH之钉钉第三方授权登录 前期用到的工具 获取access_token 请求地址 请求方法 响应 扫码 / 使用账号密码 -- 获取 临时 code 参数重要说明 直接访问 扫码登录 ...
- 实现 Google 第三方授权登录
最近做项目要实现Google的第三方登录,这简单的记录一下. 目前Google的第三方登录有很多方案,且官方提供SDK方便接入.但是我这个项目同时要实现网页和客户端.所以选择了 Google OAut ...
- 微信第三方授权登录之oauth开发
背景: 首先copy下别人讲解的oauth2.0验证授权的一些背景知识: 1) 传统的注册登陆方式: 如果你是一个新用户,则点击新用户注册按钮,进入由简书提供的注册页面,进行用户名密码验证和设置 然后 ...
- 了解第三方授权OAuth
什么是三方授权? 第三方授权就是,委托第三方来对既定的用户进行鉴定,鉴定成功之后,下发信任凭证,信任凭证和用户挂钩,同时可以使用此凭证来去第三方平台,获得该用户开放的部分信息. 直白的说,就是将用户授 ...
- (二十二)admin-boot项目之集成just-auth实现第三方授权登录
(二十二)集成just-auth实现第三方授权登录 项目地址:https://gitee.com/springzb/admin-boot 如果觉得不错,给个 star 简介: 这是一个基础的企业级基础 ...
- aspnet登录界面代码_SPA+.NET Core3.1 GitHub第三方授权登录
GitHub第三方授权登录 有许多文章都讲过GitHub第三方授权登录,但就是没有.NET Core配合前后端分离的项目(Vue,React)的实践.所以本文以前后端分离项目中如何在授权登录后,生成T ...
最新文章
- j2ee三大框架怎么选_【漯河衡器】怎么选地磅?新手选地磅的三大标准
- 计算机网络基础学测,《计算机网络技术基础》第二1章单元学习测习题-20210622072616.docx-原创力文档...
- TCP/IP的七层负载均衡
- Angular路由开发的一个实际例子
- 外设驱动库开发笔记11:SHT3x系列温湿度传感器驱动
- 计划doing.....
- HTTP 应用层过滤的兼容性问题及解决方案
- kettle安装教程
- 业务需求分析师Business Analysist(BA)的职业发展之路
- LOAP引擎:clickhouse05: 漏斗函数的应用
- Excel表格中将两个或多个单元格内容合并为一个单元格的内容
- 【原创】带下划线单选菜单栏-标签Tab
- B - Distributing Ballot Boxes
- 红孩儿编辑器的输入法模块的函数依赖关系图
- 篮球记分牌c语言程序和报告,跪求:设计一款篮球记分牌,包括C语言程序和proteus的仿真图,最好附带设计报告.。邮箱liuzhonghuaol@126.com。...
- Mongodb 监控安装配置
- 【iOS】开发者账号
- 带孩子怎么挣钱?带孩子挣钱方法大全
- Qt之GIF录制工具
- 凤凰金融张震:互联网金融将进入3.0时代
热门文章
- 若两素数之差为2 ,则称两素数为双胞胎数,打印出[31,600]之间所有的双胞胎数,并求有多少对双胞胎数。
- Python学习.第六天.字典
- Leetcode-1002:查找常用字符(简单解法)
- 使用echarts加载地图
- エロエロ王国 1.52 汉化补丁 发布
- python中strip的用法_Python中你不知道的strip()函数的妙用
- 办公室文秘试题 计算机,文秘计算机练习测验题.doc
- 4.Tableau的数据预处理
- Tushare财经数据接口(五)案例——优质基本面的股票池创建
- SQLSyntaxErrorException: SELECT command denied to user ‘XXXXX‘@‘xxxx‘ for table ‘XXXX‘ 异常解决