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

时间:2015-05-19 21:24:42

标签: asp.net-mvc authentication asp.net-web-api

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

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

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

谢谢!

1 个答案:

答案 0 :(得分:5)

如果应用程序不共享cookie,那么正确的方法是使用您需要的OAuth 2.0协议

    Web Api中的
  1. OAuth服务器
  2. 您的MVC应用中的
  3. OAuth客户端
  4. 您的用户会将用户名密码放入您的MVC应用(OAuth客户端)中,然后您将从Web Api(OAuth服务器)获得持有者令牌,您可以将该令牌用于Authentication标头中的每个其他会话请求。

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