写点什么

使用 OpenID、OAuth 和 Facebook Connect 武装你的站点

  • 2009-04-24
  • 本文字数:1861 字

    阅读完需:约 6 分钟

如果你正在盘算着如何为你的新网站创建身份管理系统(通常也称为用户管理系统或权限管理系统)的话,在动手之前你一定要看看 Dion Hinchcliffe 写的这篇题为《现代 Web 身份:为什么你的 Web 应用应该支持 OpenID、OAuth,以及可能应该支持 Facebook Connect》的文章,你或许会在读完之后改变你的主意。在他看来,使用这些新一代 Web 身份管理系统是完成这一工作更快的做法,而且功能更强且更好。他认为通过这种方法:

  • 可以更容易、更快捷和更安全地让使用者在你的站点建立他们身份。
  • 可以让业务可以单点登录到你的应用。
  • 把你的站点转变成为一个针对于第三方应用的平台,让这些应用可以安全地访问用户数据。
  • 可以将你的站点或应用集成到使用者及其关系网的社交体验(social experience)中。

在简要回顾企业单点登录和 Web 身份管理的历史之后,Dion 给出了当今实现 Web 单点登录的新思路:使用 OpenID OAuth 和(可选的) Facebook Connect

OpenID

OpenID 背后的想法其实很简单:

让使用者在登录你的应用时使用自己选择的身份提供商,而不是让他们去填写一个在线表格,然后把这些信息捕获到使用者不可能信任或不长期信任的私有本地账户中。

由此,OpenID 为使用者提供了一种访问新站点更简单的方法(还记得上次为了下载一份资料,而不得不在那个站点上注册一个你自己也知道以后可能再也不会使用的账户么?:))。Dion 把 OpenID 的好处总结为:

  • 更快、更简单的登录,因为消除或简化了注册过程。
  • 更好的登录过程和生命周期,因为用户从此只需使用一个 ID 和口令。
  • 一致的 Web 身份,因为 ID 的统一,让其他人通过这个 ID 就可将之与实际的用户划上等号。

使用 OpenID 并不要求使用者有什么改变,事实上,很多使用者很可能本身就已经有了一个 OpenID,而他自己却还不知道。看看支持OpenID 的提供商列表,开始你的OpenID 使用之旅吧。

既然支持OpenID 显然会给网站带来更大的流量,那么支持它当然是势在必行。其方式不外乎自己动手实现规范,或利用现成类库两种。这样的类库并不难找,因为目前的主流语言都已经有了相应的 OpenID 库

值得注意的是,支持 OpenID 并不意味着站点或应用就放弃了对用户信息的收集,在这种情况下它们依旧可以捕获一些使用者相关的信息,只不过这些信息是在 OpenID 的上下文中,而不是使用者不想给出的口令或其他保密信息。

OAuth

为站点提供编程接口可以让其知名度更上层楼,然而在流量增加的同时,站点面临的安全压力也在同比增长。OAuth 正是该背景下的产物,它可以让第 3 方应用安全使用你的站点数据。说到使用 OAuth 来保护 API 的好处,Dion 列举如下:

  • 安全、保密的第 3 方数据访问
  • 对于第 3 方访问的控制是声明性的
  • 大量第 3 方应用的使用将有助于推动本地站点的使用

和 OpenID 一样,在主流语言中你同样可以找到对OAuth 的支持。对于有兴趣了解OAuth 规范的读者则可以参考这里

Facebook Connect

和以上两个都是开放标准不同,Faccebook Connect 是一个私有标准。至于选择它的原因,Dion 给出的解释是“缺乏开放、被广泛的社交身份系统,而该类系统的影响却越来越大。”。同时,他还援引了 Facebook 的数据:

对大多数站点来讲,“2/3 的新注册是通过 Facebook Connect 来的,而且这些使用者大约有一半以上都开始使用这些站点”。

Dion 以自己为例对 Facebook Connect 的使用效果进行了说明:

例如,我经常使用一个视频共享站点 Vimeo ,但我的很多朋友并不使用,甚至没有那里的账户。但是,在我发布视频的时候,通过显示我视频的 Facebook Connect 链接,他们可以在自己的活动流(activity stream)中看到我在 Vimeo 上做的事情。然后,他们可以决定是否观看这个视频,或者是访问 Vimeo。

Facebook Connect 的功能和优点如下:

  • 一键登录,使用者可以使用自己的 Facebook 身份并让你的站点访问他们的 Facebook 信息。
  • 更多的参与,利用使用者个人兴趣来提供更具针对性的信息,交付朋友自己定制的内容。
  • 新的分发模型,通过 Facebook 上的活动流或其他社交渠道,使用者可以和 Facebook 上的联系人分享内容和发生在你站点上的行动。
  • 直接访问 Facebook,使用该 API,可以让超过 70 万的开发者构建大量应用。

Facebook Connect 的使用并不复杂,因为它本身就是一组 Javascript 库和 XML 标记,关于它的使用可以参考 Dion 给出的入门指南

幸运的是,这3 种工具并非排他的。完全可以结合使用,Dion 在文中给出了结合使用OpenID 和OAuth 的例子: Step2 项目。您是否已经建立您的站点,是否考虑开放您网站的 API,是否考虑拥抱 Facebook?那么 Dion Hinchcliffe 的这篇文章绝对应该在你的阅读范围之列。

2009-04-24 03:335776
用户头像

发布了 255 篇内容, 共 57.6 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

和鲸“101 数智领航计划”成果展示:携手北中医共建健康医疗人工智能实验室

ModelWhale

人工智能 大数据 北中医

2024南京智博会:展示国内外前沿科技成果,推动智能产业快速发展

AIOTE智博会

南京智博会 大数据展 智慧城市展

重构MQ处理架构:MVEL表达式和责任链设计模式应用实践

京东零售技术

后端 代码规范 代码整洁 企业号 5 月 PK 榜

美团面试:如何实现线程任务编排?

快乐非自愿限量之名

Java 面试 JVM

CaffeineCache Api介绍以及与Guava Cache性能对比| 京东物流技术团队

京东科技开发者

暗水印——空域:二值化图像水印(看不见我吧 啦啦啦~)

京东科技开发者

充分发挥财务敏捷性,扩大集成式财务规划的价值

智达方通

企业管理 财务转型

云时代下的呼叫中心:SD-WAN的推动作用

Ogcloud

SD-WAN SD-WAN组网 SD-WAN服务商 异地组网 SDWAN

北方民族大学40周年校庆学术活动-第四届自动化控制、算法与智能仿生学术会议(ACAIB 2024)

搞科研的小刘

计算机 #人工智能 学术会议 学术论文 EI

浪潮信息-龙蜥技术认证上线,培训专场圆满召开

OpenAnolis小助手

开源 操作系统 龙蜥社区 浪潮信息 龙蜥人才培养计划

基于龙蜥衍生版 KeyarchOS 的 LVM 卷管理技术与实践 | 干货推荐

OpenAnolis小助手

操作系统 技术干货 龙蜥社区 龙蜥操作系统 浪潮信息

龙蜥SIG月度动态:两大特性合入 Linux 主线,提供高速本地通信加速及丰富的设备信息

OpenAnolis小助手

操作系统 高性能网络 龙蜥社区 龙蜥技术sig

项目管理十二原则

EquatorCoco

项目管理 项目开发

高薪线下周末班马上开班,手把手带你提升职业技能

霍格沃兹测试开发学社

C# 程序集、模块和类型概念及关系

不在线第一只蜗牛

C# 开发语言 程序集

CyberScheduler架构引擎

数新网络官方账号

腾讯云与钢研新材达成战略合作,加速金属材料产业链企业数字化升级

Geek_2d6073

【中国算力大会分会】2024算法、高性能计算与人工智能国际学术会议(AHPCAI 2024)

搞科研的小刘

人工智能 算法 学术会议 学术论文 EI

浪潮信息-龙蜥技术认证上线,培训专场圆满召开

OpenAnolis小助手

操作系统 龙蜥社区 浪潮信息 龙蜥人才培养计划

担心巡检作假?草料五大防作假功能,可组合使用

草料二维码

设备巡检 设备管理 草料二维码 设备巡检系统 二维码巡检

Vite 的预构建原理与实践| 京东物流技术团队

京东科技开发者

信创数据库有哪些?哪家好?堡垒机支持吗?

行云管家

数据库 信创 堡垒机 国产化

基于大语言模型的应用

悦数图数据库

大语言模型

Meme币取代VC代币 让比特币越来越好

区块链软件开发推广运营

dapp开发 区块链开发 NFT开发 公链开发 代币开发

精选:2024年市场上10个最好的一体化协同办公平台

爱吃小舅的鱼

协同办公 协同办公系统

百度智能云参与信通院多项边缘计算标准编制,「大模型时代下云边端协同 AI 发展研讨会」成功召开

Baidu AICLOUD

边缘计算 大模型 边缘计算平台

一文搞懂RESTful开发

不在线第一只蜗牛

RESTful Rest

使用OpenID、OAuth和Facebook Connect武装你的站点_SOA_胡键_InfoQ精选文章