我已经阅读了很多关于 OpenID 和 OAuth 的内容,但是对于它们在基于服务的架构中的工作方式,我很难建立一些联系。
这是我的场景:
- 我正在编写新的 ASP.NET Web API 服务(RESTful/JSON)
- 这些服务将被客户端应用程序(当前的桌面网站、新的移动网站,以及未来可能的 PHP 网站或纯 JavaScript 客户端)使用
- 我们的桌面网站目前使用 ASP.NET Membership Provider (webforms)
我们正在创建的新 API 服务集应该处理所有事情,包括身份验证和授权。
我的问题是:
- 由于我们对访问我们 API 的客户端应用程序有明确的控制(即,这不是公共 API,而是用于集成已获批准的合作伙伴的 API),我们是否一定需要 OAuth?
- OpenID 会取代我们的 .NET Membership 功能,还是补充它?
- 鉴于我们需要使用 Membership Provider 对遗留系统的用户进行身份验证,我们是否需要使用某种 .NET Membership OpenID Provider,还是像往常一样进行身份验证并像现在一样授予用户一个 Membership Token?
我想,总结一下:
- 我正在编写一些新服务
- 它们应该可供任何已批准的客户端应用程序使用,供该客户端应用程序的用户使用
- 我们需要继续支持我们的 .NET Membership 数据
抱歉,这些是基本问题,但我相信它们很容易回答。谢谢!