【问题标题】:How to provide OAuth services from website.?如何从网站提供 OAuth 服务。?
【发布时间】:2011-09-16 02:06:46
【问题描述】:
OAuth 允许用户将一个站点上他的私有资源的访问权限授予另一个站点。但这究竟是如何发生的。如果我想在我的网站中提供 OAuth 功能(作为服务提供者和消费者),我该如何去做。我正在使用基于 Fedora 13 的服务器。是否可以配置 Round Cube / Squirrel Mail 来提供这些服务。就像现在我所有的用户在服务器中都有邮件帐户一样,我希望邮件中的凭据用于提供 OAuth 服务。
【问题讨论】:
标签:
authentication
oauth
fedora
oauth-provider
【解决方案1】:
如果您想成为数据的提供者,那么您必须在您的站点上实现 OAuth 服务器,如果您想成为消费者,您必须在您的站点上实现 OAuth 客户端。
您还应该阅读一些文章和教程以更好地了解该协议,因为它是一个允许保护 API 的协议,也就是说,与安全性相关的所有内容都应该被实施它的开发人员很好地理解。
如果您是提供者,则 1.0 版协议的工作方式如下:
- 消费者需要访问最终用户的私人数据
- 提供商向消费者颁发令牌
- 最终用户授权令牌
- 消费者可以使用该令牌对最终用户的私人数据提出授权请求
好的起点是:http://hueniverse.com/oauth/
当您决定是否实施 1.0a 或 2.0 版本的协议时,您还可以阅读 RFC。到目前为止,我只实施了 1.0a,所以我无法给出更好的建议。我猜2.0版本有更多的可能性,大家都说更容易实现。就更简单而言,1.0a 也不难实现,因为客户端和服务器都有很好的开源库,如果您了解协议的机制,您可以设置和运行服务器或客户端 1 天。
当然,如果你想制作一个具有不同访问范围、范围继承以及 API 复杂且可扩展的优秀服务器,那么无论你选择 1.0a,你都必须在这方面做很多工作。或 2.0 OAuth 版本
【解决方案2】:
演示 oauth 流程的简单示例。理解这个概念有助于相应地进行设计: