使用WebAPI和MVC作为客户端体系结构的休息服务

时间:2015-11-18 15:40:33

标签: c# asp.net asp.net-mvc asp.net-web-api

我正在使用ASP.NET WebAPI构建一个restful web服务api。我将使用MVC作为Web应用程序并最终在移动应用程序中使用它。我想让api独立,而不是将它与MVC应用程序结合起来。 我无法弄清楚如何构建身份验证。我需要api只能从特定来源(网络应用程序和移动应用程序)消费。但是,我不知道如何将WebAPI中的身份验证与MVC身份相关联。新用户应该在MVC中注册,他们的身份信息应该提供给WebAPI。我正在为项目使用个人账户身份系统。

简而言之,如何对Api和客户端使用相同的身份验证?它们应该部署到同一个域吗?

1 个答案:

答案 0 :(得分:1)

我最近做了类似的事情。

我认为你有2个问题:

  1. 您只想接受来自已知来源的Web API请求。
  2. 您想要对用户进行身份验证。
  3. 对于数字1:

    您想要向Web API请求添加身份验证。这可能是基本身份验证,但它显示调用来自已知应用程序。通过使用它,您可以知道呼叫的来源。尽管你读了什么,基本身份验证是可以的,但只有当呼叫通过TLS(HTTPS)连接时。否则,可以看到呼叫,并且可以在重放攻击中使用身份验证。

    对于2号:

    您可以拥有一个用户可以调用的方法,例如登录请求,用户可以在其中进行身份验证,如果成功,则使用令牌发出。 JWT(Javascript Web令牌)是您可以使用的一个令牌。然后可以随后的每个呼叫发送令牌。但是,请记住,使用它们会很痛苦!

    这取决于您的安全需求有多紧张。可能是基本身份验证以及TLS可能对您而言足够了。