OAuth(OAuth2)ASP.NET REST Web API(自主机-窗口服务)实现



我已经为我的(android)移动应用程序构建了一个Restful Web API,现在我正在努力确保对API的访问安全。我花了大约一周的时间阅读这个主题,我了解了整个范围——从那些认为不可能确保Restful API的人到那些认为Https(SSL)就足够了的人。

在这里,我不想就此展开讨论。我已经接受了OAuth或OAuth2,这并不重要(就我所读过的内容而言,OAuth似乎是更好的选择,但在微软教程中,他们使用的是OAuth 2,所以在这里我很困惑),是的,我知道他们完全不同,但我对搜索感到非常沮丧,我会接受其中任何一个(我必须承认,我解释这一点是为了更容易)。正如我所说,我搜索了大约一周,得到的都是概念(很多)。您向服务器发送一些数据-魔术启动-通常是用户名/密码,您的数据正在处理中,您会得到一个令牌返回-魔术停止-。关于SO,这个话题有很多问题,但大多数答案都不准确(不幸的是,不常见)。例如,我得到了一个"如何保护WEB API",很好的答案,但不是真正使用它们,或者这个"用OAuth和单页应用程序实现WEB API"。我也从微软教程中得到了一些例子,但代码中有很多开销,关于OAuth的部分也不太清楚(这很不幸,因为整个例子应该是关于OAuth的)。我可以发布大量声称谈论这个话题的链接,但实际上它们毫无帮助。

我正在寻找的是一个简单、非常非常简单的ASP.NET OAuth(2)实现示例。如果我能和fiddler一起使用它,在标题中提供用户名/密码,并使用grant_type: xxx取回令牌,那就太好了(允许的用户名/密码可以在项目中硬编码,因此不需要实体框架实现或后端的任何数据库)。如果有人能解释我如何使用这个令牌来授权用户,那也太好了(我知道我必须为Controller函数提供[Authorize]属性,但这个令牌检查是如何以及在哪里进行的?)。但是,请不要发布任何关于OAuth的理论,我不需要,在这里我正在寻找Asp.NetWebApi中OAuth真正的实现

感谢

下面是关于为Web API项目添加资源所有者密码凭据流的详细文章。

您可以在这里找到Web API项目中最简单的OAuth2实现

  • GitHub上的WebApiOAuth2

只有两个重要文件:

  • Startup.cs(带设置)
  • AuthorizationServerProvider.cs(使用oauth2的用户的授权)

最新更新