2

背景:

我已经实现了一个 Web-API (.NET),现在我需要做最重要的事情,保护它。

当我调查这个主题时,我知道常用的方式是承载令牌。

现在我们来解决我的问题。

我的问题

在一边:

我看到的每一篇文章(解释了通过 .NET 实现它的概念和方法)都从一个具有 Web API 模板的项目开始,该模板包含 MVC 和 Web API,并在身份验证字段中从个人/组织/Windows 中选择一个选项。

另一方面:

我不需要 MVC 项目,我只需要 Web API(没有任何 GUI),我选择空项目并选中 Web API 复选框的原因,这样我就无法选择身份验证类型,我被迫从 no验证。

问题:

1.我一定要使用MVC来获得认证吗?如果不是,我怎么能从纯 Web API 项目中做到这一点?

2.也许我会从那个 Web API 模板创建一个身份验证服务器(只生成令牌)(可以选择身份验证类型)?(并在真正的 Web API 上使用令牌)

3.在不同的项目和不同的服务器上实现认证服务器有什么好处?(Kerberos 风格

PS我想使用开箱即用的解决方案,因为安全方面是最重要的(在我看来)并且应该完美无缺。

4

1 回答 1

0

我写了一篇关于这个主题的博客,名为“保护和安全地调用 Web API 和 [授权]”:http: //blogs.msdn.com/b/martinkearn/archive/2015/03/25/securing-and-working-securely -with-web-api.aspx。我想如果你读了这篇文章,你就会得到所有的答案。

默认情况下,Web API 模板确实包含 MVC,因此您可以获得自动文档功能(这是一个很棒的功能)。然而,身份验证部分与核心 ASP.net 功能相关,而不是特定于 MVC 或 Web API。您需要启用其中一种身份验证选项,以使用 .net 的内置安全功能保护您的 API。

如果您不想要 Web API 附带的 MVC 项目,只需在项目创建后将其删除即可。它包含在“区域”文件夹中。如果您删除该文件夹,您将在纯 Web api 上运行。

要回答您的具体问题:

1) 不,您不需要 MVC 项目来保护 API 项目。您可以在 API 控制器和操作上使用 [Authorize] 属性。

2) 默认情况下使用 web api 模板创建身份验证服务器。您可以通过 http:///Token 访问它并获取令牌

3) 不,您需要使用 api 本身为安全控制器/操作请求提供有效令牌

希望有帮助。如果没有,那么请对您的问题更具体一点。

于 2015-08-06T19:57:52.803 回答