我正在使用ASP.NET web API构建RESTful web服务,我正在考虑使用OAuth 1.0作为身份验证机制来保护服务的安全。我们的API还将维护凭证存储,因此将是OAuth提供商。使用API的客户端应用程序将由最终用户使用,他们必须使用用户名和密码进行身份验证,因此我认为客户端应用程序被视为OAuth消费者。客户端应用程序将进行API调用以检索未经授权的请求令牌,然后将用户的凭据与令牌一起发送以获得访问令牌。
最终,我可以看到其他第三方应用程序希望通过我的API访问我们的应用程序,他们将使用OAuth进行重定向,而我们的应用是凭据提供商。
这是使用OAuth的可行方法吗?像DotNetOpenAuth这样的东西会支持这种场景吗?
我们决定实现OAuth 2.0,它支持各种工作流,其中之一包括资源所有者凭据流,该流允许客户端将用户凭据传递给授权服务器以换取访问令牌。这将符合我们的目的。