2015-02-05 107 views
0

enter image description hereAsp.net Web API和Web MVC验证逻辑

这是我的应用程序结构。 MVC网站和API正在从数据层获取数据。 WEB API将json数据作为服务。但我想限制一些在WEB API上的数据访问。

我在MVC网站上有一个用户认证机制。但是现在我应该在web api应用程序上创建相同的机制吗?这是重演自己。

我不知道这些系统是如何工作的。例如Twitter或谷歌喜欢单一登录和网站和API工作。或者有什么办法?

+0

您可以创建自己的单点登录机制。请参阅此链接http://www.codeproject.com/Articles/630986/Cross-Platform-Authentication-With-ASP-NET-Web-API – 2015-02-05 14:30:15

+0

以下是您需要的一个很好的框架:https://identityserver.github。 IO /文档/ – 2015-02-05 14:37:49

回答

0

这通常是使用基于令牌的身份验证完成的。您的MVC应用程序根据与身份提供者相关联的安全令牌服务(STS)对用户进行身份验证(可以是像Google或Facebook这样的社交身份提供程序,也可以是拥有自己的用户名/密码数据库的服务)。 STS为该用户发布安全令牌以使用该应用程序。令牌是数字签名的,所以它不能被篡改。

现在,如果应用程序想要调用Web服务,它会将令牌返回给STS并请求服务的新令牌。该令牌通常以JWT令牌的形式出现,您可以将其粘贴到Web API的HTTP请求的Authorization HTTP标头中。

您打电话的服务配置为信任STS发出的令牌。它通过验证令牌是否由它知道的STS发出,令牌用于该服务并且它在有效时间范围内等来执行此操作。

另请参阅this question