【问题标题】:Securing Web API with SPA code使用 SPA 代码保护 Web API
【发布时间】:2013-11-17 09:06:54
【问题描述】:
我正在开发一个带有 ASP MVC 4 Web API 后端的富客户端 javascript 应用程序。
您建议如何保护所有 ajax 请求,确保它们是由经过身份验证的用户发出的。
谢谢!
【问题讨论】:
标签:
security
rest
asp.net-web-api
authorization
single-page-application
【解决方案1】:
任何安全机制都可以,例如表单身份验证。
您将 Authorize 属性添加到您的控制器方法中,如果 cookie 是从服务器发出的,则 ajax 请求会携带该 cookie。
这真的很简单。如果由于某种原因它不适用于您的场景,则您必须更具体。
【解决方案2】:
正如 Wiktor 所建议的,您可以使用基于表单的身份验证(HTTP 机制)。
如果我们更广泛地考虑您的问题,保护所有 AJAX 请求意味着什么?
您可能想要实现:
wikipedia 上更广泛地讨论了该主题。更具体地说,您希望在 API 中执行以下操作:
- 保护通信通道:使用 SSL(单向或双向)。这将提供完整性和机密性
- 使用身份验证。这将为您提供不可否认性和问责制。 .NET 中提供了不同的身份验证方法(表单、HTTP Basic、基于 SAML...)
- 对于授权相关的高级场景(允许用户使用方法调用),请使用基于声明的授权(.NET 框架的一部分)、RBAC 或 XACML。