2

我们有一个 Web 服务,我们将托管在公共 Web 服务器上,并且将通过托管在医院墙壁内的 Web 服务器上的 Web 服务与其联系。我们已经编写了这两个软件,因此我们可以完全控制实现的内容。

我们希望保护两个 Web 服务器之间的通信。目前,我们唯一拥有的是公共 Web 服务器上的 https 和用于识别客户端的 guid。

我们可以支持网络级别的授权类型,但我不喜欢依赖这些类型,因为并非我们所有的客户(医院)都能做同样的事情。有些不能给我们静态IP,有些不能做VPN,所以我们不能仅仅依靠这些方法。

您正在使用或建议使用哪些技术来授权与您的 Web 服务的通信? 我们主要关心的是阻止人们获得医院 ID(目前只是一个 GUID)并从我们的 Web 服务中获取数据,这些数据是为医院准备的。

我们将采用其他网络级别的安全措施来限制公众对我们系统的访问,但我认为软件解决方案也是必要的。

该系统尚未投入生产,但已接近开发完成。它在 .net 3.5 上用 C# 开发

FWIW 我正在考虑某种基于令牌的授权,因为我知道以前的雇主使用过类似的东西。但是,我不知道具体要查找什么或有关该主题的任何其他信息。

编辑:虽然我想使用 WCF,但目前团队中没有人(包括我自己)有任何使用它的经验,我们已经开发了 Web 服务以及与之交互的代码。所有使用 .net 2.0 方法添加的 Web 引用(来自 vs.net08,针对 .net 3.5),我们不希望完全重做。我不会说 WCF 不是一个选项,但我认为我们不会心甘情愿地选择该选项。

4

3 回答 3

1

客户端证书可用于从调用者向您的 Web 服务提供凭据;获取通过的证书并进行任何额外的评估以确定该证书的可见性并不难。

于 2009-02-17T18:01:15.050 回答
1

您可能想要使用 OAuth 之类的东西:

http://oauth.net/

然后,您可以将它与 WCF 一起使用以提供端点。

从那里,您希望将声明映射到客户的内部 id(您必须确定此映射是什么)。

这样,您不必依赖向任何人发布任何内容,您所要做的就是根据发送给您的声明创建映射。

于 2009-02-17T18:06:25.710 回答
1

您可以使用类似 https 的基本身份验证来提供用户名密码挑战吗?我相信 Microsoft SOAP 对它的支持相当好。您几乎只需使用 IIS 来配置基本身份验证(必须使用 SSL),并在您的 C# 中将 ICredentials 传递给您的代理。

从谷歌搜索来看,其他语言似乎也支持基于 SOAP 的基本身份验证。

于 2009-02-17T18:23:30.520 回答