针对 web api 中间层的 mvc 身份验证

Posted

技术标签:

【中文标题】针对 web api 中间层的 mvc 身份验证【英文标题】:mvc authentication against web api middle tier 【发布时间】:2015-03-30 05:52:42 【问题描述】:

我目前有一个 web api 2 项目作为我的应用程序中间层。我需要保护这个项目,并为我的 MVC 项目以及可能的 iosandroid 应用程序提供身份验证服务。

web api 业务逻辑需要检查用户权限/角色以确保安全,mvc 项目在功能上需要相同的功能以确保对控制器的请求有效。如何使用 Asp.net Identity 或其他方式执行此操作?有没有这类事情的参考项目?

【问题讨论】:

这也是我真正想要弄清楚的事情。我的 web 层连接到我的 api 以检索数据等,但我需要确保我可以在两个层中正确授权。 【参考方案1】:

这里有一些很好的信息: http://www.asp.net/web-api/overview/security/authentication-filters

我看到的另一种方法是使用单独的 API 为“事务”生成访问令牌,使用您想要使用的任何凭据......但通常通过 https 完成!然后,此令牌由客户端作为参数传递给业务层 API。可以对令牌进行各种检查,例如请求令牌的同一客户端?令牌过期了?令牌已使用?等等

让我知道你是怎么过的。

谢谢。

更新

本地帐户的 Web API 安全性: http://www.asp.net/web-api/overview/security/individual-accounts-in-web-api

【讨论】:

不幸的是,链接不是我所追求的。它描述了使用基本访问身份验证机制。这并不是我真正想要的,因为我必须将密码哈希存储在存储机制中,以便随每个请求一起发送。令牌是我一直在考虑的事情,但我认为通过 Asp.net Identity 会有更集成的方式 这就是你想要的吗? asp.net/web-api/overview/security/… 这对于 Web API 来说很好,例如 iOS 应用程序可能会如何工作,但我需要将 IPrincipal 用户传递回 MVC 应用程序,除非我遗漏了什么?

以上是关于针对 web api 中间层的 mvc 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

MVC .NET cookie 身份验证系统通过令牌身份验证访问 Web Api

如何使用 Web API 来对 MVC 应用程序进行身份验证

如何使用 Web API 来对 MVC 应用程序进行身份验证

如何使用 Web API 来对 MVC 应用程序进行身份验证

mvc web api身份验证令牌cors问题

如何使用 Web API 来对 MVC 应用程序进行身份验证