【发布时间】:2011-06-02 06:30:35
【问题描述】:
我有一个带有简单 REST API 的产品,因此该产品的用户可以直接与产品的功能集成,而无需使用我的 Web 用户界面。
最近,各种第三方对将他们的桌面客户端与 API 集成以允许我的产品用户使用该第三方应用程序访问他们的数据感到兴趣。
我看到想要使用 Twitter 的应用程序使用 Twitter 托管的登录页面进行身份验证,该登录页面授予特定应用程序访问该用户数据的权限。单击“允许”或“拒绝”按钮,身份验证过程完成。据我所知,Facebook 使用的机制相同。
经过进一步研究,这似乎是 OAuth 在起作用,并且鉴于我的 API 是基于 .Net 的,我想我应该使用 DotNetOpenAuth 并提供类似的机制。不幸的是,这些示例的文档很少(如果有的话),我可以在网上找到的唯一教程似乎专注于帮助您为用户提供登录机制,以便他们可以使用第三方提供商登录您的网站。
我真正想做的是让我的 REST API 处理我的 Web 应用程序的所有核心身份验证和业务逻辑,并让我的 Web 应用程序本质上是另一个应用程序只需通过 OAuth 使用 API。用户可以直接使用他们的用户名和密码在网站上进行身份验证,也可以通过 MyOpenID 或 Facebook 等第三方提供商进行身份验证,然后网站会以某种方式使用返回的令牌对 REST API 进行身份验证。
基本上看起来我需要我的 API 以某种方式托管 OAuth 服务,但也让用户使用第三方 OAuth 服务。我不禁认为我对 OAuth 的了解还不够,无法确定我是否过于复杂化了事情,或者我正在尝试做的事情是好的还是坏的做事方式。
谁能给我至少大致了解一下我需要采取的步骤,或者我应该注意什么才能做到这一点?或者指点我一些教程?或者抨击我的提议并告诉我我要解决这个问题(在架构上)都错了?
【问题讨论】:
-
嗨,Nathan,我正在为与您在此处描述的类似情况而苦苦挣扎,想知道您是否有什么要添加到我的问题或关于如何解决我目前对 OpenID 缺乏了解的建议与我的 API stackoverflow.com/questions/16855131/… 集成
标签: oauth openid dotnetopenauth rest