Google+ Sign-In 将 Google+ 社交网络扩展到第三方网站、桌面应用和移动应用,并进一步巩固了 Google 与 Twitter 和 Facebook 一道作为认证提供者的地位。在 2 月 26 日公布的这项服务支持以下特性:身份认证、授权和活动分享。它还为用户互动、Hangouts(通过摄像头进行多人视频通话)和自动下载 Android 应用提供了额外的支持
尽管关于这项新服务的讨论主要聚焦在与 Facebook 的激烈竞争上,从技术角度看,探寻 Google+ API 幕后的内容以了解这些新特性如何工作并理解一些将要投入使用的标准很有帮助。
一个简单的 [g+ | Sign In] 按钮为进入第三方 Web 页面、桌面或移动应用提供了入口。它的流程从应用为了访问用户的 Google+ 档案而请求访问令牌开始。在浏览器中,该编配(orchestration)通过客户侧流程,或是通过后端 API 操作使用服务器侧流程完成。如果用户还未使用 Google+ 认证,则认证会作为 sign-in 的一部分。此外用户会得到提示,对第三方应用赋予他们希望的访问等级。访问等级或范围包括:
- Userinfo.email:仅提供用户的电邮地址
- plus.me:提供用户的 Google+ 档案信息
- plus.login:通过允许访问圈子以及向用户的 Goolge+ 活动流写入活动的能力,扩展其他范围
这样的访问编配结合了认证与授权,授权遵循 OpenID Connect 草案标准,而这份草案标准则基于近期生效的 OAuth 2 协议。认证则完全由 Google 认证系统处理而不会涉及第三方应用。OpenID Connect 将认证置于 OAuth 授权协议之上,有效地对第三方应用进行用户认证并准许访问用户的 Google+ 档案。 Nat Sakimura 是 OpenID 基金会主席及 OpenID Connect 的合著者,他恰到好处地描述了OpenID、OAuth 和OpenID Connect 之间的区别,以及应用如何使用类似Google+ Sign-In 这样的服务以校验一个用户请求访问的认证。
用户可以使用他们的应用设置页面检查他们的应用授权,在该页面中他们可以取消访问或改变自己的分享设置。
第三方应用现在可以使用其访问令牌在Google+ API 中管理应用内活动。Google 将这些活动称作“瞬间(moments)”,而Google+ API 提供简单的CRUD 接口以插入、列出和删除“瞬间”。“瞬间”可以以不同的风格出现,被称作ActivityTypes(活动类型)。所有的活动都拥有名字、描述和缩略图,以及一个用于表现活动主题的_itemtype(事物类型)_。Itemtype 必须是 schema.org 所列出的事物的子类型,例如一本书、一个地方或是一个人。此外,事物必须拥有指向某个HTML 页面的URL——这个页面必须包 schema.org 含标记出的相关事物。用这种方法,Google+ 集成鼓励开发结构化标记的“语义网”,它也有益于搜索引擎。行为列表相当全面:
- AddActivity(添加活动):一个具有 itemtype、名字、描述和缩略图的通用活动。
- BuyActivity(购买活动):展现某事物的购买。
- CheckinActivity(签到活动):展现用户在某处签到,并带有额外的地址和地理位置属性。
- CommentActivity(评论活动):适用于用户对一篇博文、书或其他创新作品进行评价的时候。
- CreateActivity(创建活动):适用于用户创建一件创新作品的时候。
- DiscoverActivity(发现活动):适用于用户发现一件创新作品的时候。
- ListenActivity(聆听活动):展现用户正在聆听音乐拷贝或提供额外属性用于歌曲、专辑和艺术家的元数据。
- ReserveActivity(预订活动):表示用户正在预订某项本地业务,例如餐厅或酒店。
- ReviewActivity(评价活动):一项包含评级信息的事物评价。
- WantActivity(期望活动):表明用户期望某事物,例如他们将某事物添加到了应用中的心愿单。
Google+ 基于用户授权设置,完全处理将这些“瞬间”到 Google+ 活动流的表达与分发工作。
这份简洁的回顾仅仅浮光掠影般检视了 Sign-In 带来的新的 Google+ 特性,但却给出了一个关于新的认证和授权标准,以及语义标记向社交活动流扩展的有趣例子。
查看英文原文: Google+ Sign-In: Federated Identity, Authorization and Semantic Activity Streams
感谢侯伯薇对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
活动推荐:
2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。
评论