如何验证来自MVC客户端的web api调用

Eva*_*van 3 authentication asp.net-mvc asp.net-web-api

所以我有一个ASP.NET MVC应用程序,它有自己的用户,并使用cookie和声明身份验证.我正在添加一个将在其他地方托管的Web Api应用程序.MVC应用程序是唯一应该调用api的应用程序.我想知道验证api调用的正确方法是什么.所有授权检查都在MVC应用程序中完成,目前API并不关心授权,只关注身份验证.

我的第一个想法是只有一个"应用程序用户"将请求持票人令牌,然后将其与每个请求一起传递.web api将对此用户进行身份验证并提供令牌.这听起来不对吗?有没有更好的办法?

如果将来,web api确实关心授权,那么将api调用作为登录用户的正确方法是什么?

谢谢!

Alb*_*zon 5

如果应用程序不共享cookie,则执行此操作的正确方法是使用您需要的OAuth 2.0协议

  1. Web Api中的OAuth服务器
  2. 您的MVC应用中的OAuth客户端.

您的用户将在您的MVC应用程序(OAuth客户端)中放置用户名密码,通过它您将从Web Api(OAuth服务器)获得持有者令牌,您可以通过将该令牌放入Authentication标头中来将其用于其他所有会话请求.

此特定OAuth流称为密码凭据流,可在需要从受信任的应用程序(作为MVC应用程序)中对用户进行身份验证时使用.