我们有一个用 ASP.NET MVC 编写的应用程序,它由 Web(非休息,使用 razor)和 API 项目(以及一些其他项目,但这不是现在的重点)组成。
Web 中的身份验证是使用基本表单例份验证完成的,API 中的身份验证是使用 OAuth2 完成的。
事实证明,在同一应用程序中使用两种身份验证方式有点难以维护,因此我们决定放弃表单例份验证,并在 Web 和 API 项目中使用 OAuth2。
在 Web 项目中,我们可能必须将 OAuth2 token 存储在 cookie 中,而不是将它们作为 header 发送。是否可以使用 OAuth2 来保护“非休息”应用程序?如果是这样,这样做是否存在一些安全问题?
最佳答案
有一些关于您感兴趣的主题的优秀文章。这些文章解释了您正在寻找的详细信息。
- Tokens and Cookies .
- The Ultimate Guide to Mobile API Security
- The Most Common OAuth2 Vulnerability
- Using OAuth 2.0 with the SOAP API
- Using OAuth2 with SOAP
- ASP.NET WebForms OAuth2 multi-tenant resource and WPF client
这些站点将是起点。 OAuth 2.0 受到了很多批评,但大家指出的安全漏洞在其他身份验证模型中也很常见。因此,如果应用程序中解决了这些漏洞,那么安全问题就会自行缓解。
- OAuth 2.0 Threat Model and Security Considerations
- Common OAuth2 Vulnerabilities and Mitigation Techniques
- SaferWeb: OAuth2.a or Let's Just Fix It
但还必须指出的是,OAuth2 并不是 OAuth1 的下一代。你可以找到一篇优秀的文章here .
关于asp.net - 是否可以使用 OAuth2 来保护 "non-rest"应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39371873/