关于OAUTH2和自定义身份提供商的困惑

时间:2014-01-16 14:31:39

标签: c# asp.net-mvc-4 oauth asp.net-web-api dotnetopenauth

我正在使用ASP.NET Web API,现在我想实现oauth2协议以授权api端点。

身份提供者,授权服务器和资源(api)都将由我们的软件处理。我不需要实施谷歌,MS og Facebook登录。 我选择oauth的原因是,我希望使用相同的身份提供商来提供我公司可能开发的futere服务。 到目前为止,我在互联网上找到的每个示例代码和教程似乎都集中在使用外部身份提供商(如Google),而不是使用自行开发的解决方案。此外,它们似乎包含用于输入凭据的网页,这不是我想要做的。客户端库应该使用apikey并使用它来获取访问资源api所需的令牌。 这甚至可能吗?或者我完全误解了oauth的用途?

我希望我的情况明确,所以,如果有人能指出我正确的方向代码示例,教程或类似的话。

1 个答案:

答案 0 :(得分:4)

oauth中没有apikey的概念。相反,您有不同的流程,其中客户端凭据流是您应该感兴趣的流。该流程包括仅从客户端应用程序发送client_idclient_secret身份提供者的令牌端点,因此在没有任何用户交互的情况下声明令牌。

http://aaronparecki.com/articles/2012/07/29/1/oauth2-simplified

(Aaron将此流程记录为“应用程序访问”)

如果您决定使用DotnetOpenAuth,则可以为身份提供者,资源服务器和客户端应用程序实现流程。首先,下载他们的示例,尝试尽可能多地学习,然后回过头来回答具体问题。