验证Web服务

时间:2012-10-09 05:35:54

标签: c# .net web-services rest

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

6 个答案:

答案 0 :(得分:2)

您是否在为RESTful服务使用WebAPI?或者您是否使用已弃用的REST入门套件进行开发?

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

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

您可以使用标准授权属性,也可以扩展该类以根据需要进行自定义,并使用https进行安全通道。

答案 1 :(得分: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或使用客户端证书等顶层添加更多安全性。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

答案 4 :(得分:1)

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

答案 5 :(得分:1)

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