Web API身份验证最佳实践



考虑到数据安全性至关重要,并且ASP.NET应用程序运行在Azure上,哪种方法是Web API的最佳身份验证方法?

在处理身份验证和保护Web API时,我建议您遵循Dominick Baier制定的指导方针。在ASP.NET身份管理方面,世界上可能没有比这更好的专家了。

你可以在上找到他的博客http://leastprivilege.com/和一个伟大的Web API身份包在Nuget,Thinktecture.IdentityModel-http://nuget.org/packages/Thinktecture.IdentityModel与大多数优秀的开源库一样,由于所有功能都是免费的,因此没有必要重新发明轮子。

这是一个自上而下的身份&用于.NET 4.0/WIF和.NET 4.5的访问控制库(包括对MVC和Web API的支持)。

如果您想了解有关保护Web API的更多信息,您也应该观看此视频http://vimeo.com/43603474-多米尼克在奥斯陆国家数据中心2012年的演讲。

像这样的问题非常"开放",这完全取决于您项目的需求。如果你想要安全,你应该考虑不同的安全措施的组合。

采用HTTPS结合多因素身份验证。一个例子是客户端证书身份验证(存储在加密狗上的私钥)和基本身份验证(用户名/密码)。这样可以确保,即使恶意人员掌握了用户名和密码,如果没有硬件加密狗,他也无法访问应用程序。反之亦然,即使硬件令牌被盗,在不知道用户名和密码的情况下也将毫无用处。

这些可能是一些很好的博客文章,让你开始:

  • 使您的ASP.NET Web API安全
  • 使用客户端证书保护ASP.NET WebAPI

即使这适用于一般的web,在继续其他操作之前,您也应该阅读面向.NET开发人员的OWASP Top 10。

最新更新