我有一个WinRT应用程序,它将与我的服务器上的WebAPI服务进行交互,该服务由实体框架管理的SQL数据库(MVC - ASP.NET)支持。为了安全起见,我只允许在WinRT端通过Microsoft Live Connect SDK进行身份验证的用户与WebAPI服务进行交互。我已经有了使用WinRT应用程序端的Live Connect SDK进行身份验证的登录代码。 WebAPI服务在我的Azure托管服务器上运行的MVC Web角色的上下文中运行。
我已经在StackOverflow上做了很多阅读,并且有很多关于身份验证,OData,OAuth,Azure移动服务,WebAPI以及如何将它们组合在一起的文档:
Live Connect Authentication Token for use on Azure Mobile Services (REST)
How to use a MVC WebAPI OData endpoint securely?
Disable Windows Authentication for WebAPI
我非常担心我选择的工具/路径只能以安全的方式实现上述方案所需的工具/路径。我的主要攻击问题是未经过身份验证的用户尝试访问ApiController并执行有害的Puts或Deletes。一些问题:
我是否需要Azure移动服务?
我需要使用哪些工具或配置更改来管理/传递WinRT应用和服务之间的Live Connect令牌?
是否有我应该使用的模板或NuGet包自动化大部分内容?
是否有一个文档可以解决我的方案或一个接近它的方案?
Entity Framework内置了什么可以提供帮助,或者反过来有一个我需要解决的漏洞?如果是,那该怎么办?
我需要对服务器配置(web.config)进行哪些更改?