0

我使用 C# 开发了一些 RESTful Web 服务。任何人都可以建议我(有一些资源可以遵循)验证服务的最佳方法,因为它将通过并检索一些非常敏感的数据。

4

6 回答 6

2

您是否将 WebAPI 用于您的 RESTful 服务?或者您是否使用过时的 REST 入门套件进行开发?

如果您使用的是 WebAPI,则可以点击此链接:

http://www.piotrwalat.net/basic-http-authentication-in-asp-net-web-api-using-membership-provider/

您可以使用 Standard Authorize 属性,还可以扩展该类以根据您的需要进行自定义,并将 https 用于安全通道。

于 2012-10-09T05:48:10.940 回答
2

我会推荐使用 API Key,这里有一篇文章可以跟进。 http://blogs.msdn.com/b/rjacobs/archive/2010/06/14/how-to-do-api-key-verification-for-rest-services-in-net-4.aspx

这为您提供了所需的简单安全性,并且不会阻止您在顶部添加进一步的安全性,例如 https 或使用客户端证书。

于 2012-10-09T06:16:11.547 回答
1

在类似的情况下,我为每个请求使用 https 和两个额外的两个参数。这些是用户名和加密密码。

于 2012-10-09T05:46:17.827 回答
1

我知道一个简单的解决方案,但它非常简单直接,
      您可以通过验证一些常见的输入参数来授权服务请求,例如一些有效的密钥作为服务的查询参数并在服务中验证它.. 如果成功继续,失败说UnAuthorized。在 JVM 服务器中,我可以拥有实际的密钥,并将请求服务器对传入的密钥进行身份验证。不知道 C#... HTH

于 2012-10-09T05:47:52.647 回答
1

如果您非常关心身份验证,最好的方法之一是使用SSL 客户端证书。您为系统的每个用户创建并颁发 SSL 证书,并且他们在连接到您的服务器时使用该证书(显然,通过 SSL)。您可以通过特定于您的 Web 服务器的 API 验证他们是否是经过身份验证的用户。

于 2012-10-09T05:54:41.580 回答
1

有很多方法可以解决这个问题,您的最终解决方案可能应该混合使用它们。首先,只公开 HTTPS 端点(并获得一个好的证书)。如果可能,请使用 Windows 身份验证,并将访问权限仅限于特定用户。您还可以加密某些传入的数据元素(并在您的 C# 代码中对其进行解密)。

于 2012-10-09T05:40:03.237 回答