以WebAPI和MVC为客户端架构的Restful服务

本文关键字:Restful 服务 客户端 WebAPI MVC | 更新日期: 2023-09-27 18:22:40

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

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

以WebAPI和MVC为客户端架构的Restful服务

我最近也做了类似的事情。

我认为你有两个问题:

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

对于1号:

您希望将身份验证添加到Web API请求。这可能是基本的身份验证,但它显示调用来自已知的应用程序。通过使用此功能,您可以知道呼叫的来源。不管你读到了什么,基本身份验证是可以的,但前提是调用是通过TLS(HTTPS)连接。否则,可能会看到该调用,并在重播攻击中使用身份验证。

对于2号:

您可以有一个用户可以调用的方法,例如登录请求,在该方法中可以对用户进行身份验证,如果成功,则向用户颁发令牌。JWT(Javascript Web令牌)是您可以使用的一种令牌。然后,可以在每次后续调用时发送令牌。但是,请记住,使用它们可能会很痛苦!

这取决于你的安全需要有多严格。可能基本身份验证和TLS对你来说就足够了。