我为我的(android)移动应用程序构建了Restful Web API,现在我正在尝试保护对API的访问。我正在阅读这个主题大约一个星期,我得到了整个范围 - 从那些说不可能获得Restful API的人到那些说Https(SSL)就足够了的人。
在这里我不想开始讨论。我已经解决了OAuth或OAuth2并不重要(据我所知,OAuth似乎是更好的选择,但在他们使用的Microsoft教程中) OAuth 2,所以在这里我很困惑),是的,我知道他们完全不同,但我对搜索感到非常沮丧,我也会接受(我必须承认,我已经将这更容易了)。正如我所说,我正在寻找大约一个星期,我得到的只是概念(很多都是)。你发送一些数据 - 可怕的开始 - 通常用户名/密码到服务器,你的数据正在被处理,你得到一个令牌 - 魔法停止 - 。在SO上有很多关于这个主题的问题,但大多数答案都是不准确的(不幸的是不可用)。例如,我得到了这个How to secure WEB API,很好的答案,但没有真正使用它们,或者这个Implement Web API with OAuth and a Single Page Application。我也从微软教程中得到了一些例子,但是代码中有很多开销,关于OAuth的部分不太清楚(这很不幸,因为整个例子应该是关于OAuth的)。我可以发布大量声称可以谈论这个话题的链接,但实际上它们没有任何帮助。
我正在寻找的是一个简单,非常简单的ASP.NET OAuth(2)实现示例。如果我可以将它与fiddler一起使用,在标题中提供用户名/密码并使用grant_type: xxx
我会得到令牌(允许的用户名/密码可以在项目内部进行硬编码,这样会很棒不需要实体框架实现或后端的任何数据库)。如果有人能解释我如何使用这个令牌来授权用户(我得到它,我必须提供带有[Authorize]
属性的Controller函数,这也很棒,但这个令牌检查的方式和位置正在完成?)。但请不要发布关于OAuth的任何理论,我不需要,我在这里寻找Asp.Net Web Api中OAuth的实际实现
感谢
答案 0 :(得分:6)
以下是关于为Web API项目添加资源所有者密码凭据流的detailed post。
答案 1 :(得分:4)
您可以在此处找到的Web API项目中最简单的OAuth2实现:
只有两个重要文件:
Startup.cs
(有设置)AuthorizationServerProvider.cs
(使用oauth2的用户授权)