Web API身份验证最佳实践

Gui*_*ira 22 architecture security azure asp.net-web-api

哪一个是Web API的最佳身份验证方法,考虑到数据安全性是必不可少的,ASP.NET应用程序在Azure上运行?

Fil*_*p W 43

在处理身份验证和保护Web API时,我建议您遵循Dominick Baier设置的准则.世界上可能没有更好的ASP.NET身份管理专家.

你可以在http://leastprivilege.com/找到他的博客,在Nuget,Thinktecture.IdentityModel上找到一个很棒的Web API Identity包 - http://nuget.org/packages/Thinktecture.IdentityModel 与大多数优秀的开源库一样,由于所有功能都可以免费使用,因此无需重新发明轮子.

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

如果您想了解有关保护Web API的更多信息,您还应该观看此视频http://vimeo.com/43603474 - Dominick在NDC Oslo 2012上的演讲.


San*_*tia 5

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

将HTTPS与多因素身份验证结合使用.一个例子是客户端证书身份验证(存储在加密狗上的私钥)和基本身份验证(用户名/密码).这可以确保即使恶意用户获得用户名和密码,他也无法在没有硬件加密狗的情况下访问该应用程序.反过来也是如此,即使硬件令牌被盗,如果不知道用户名和密码也没用.

这些可能是一些很好的博客文章,可以帮助您入门:

即使这一般适用于Web,您应该在继续其他任何事情之前阅读面向.NET开发人员的OWASP Top 10.