1

这是我希望达到的目标:

我的 ASP.NET Web 服务托管在名为//service的服务器上。我想通过服务器和应用程序控制对 Web 服务的访问。我的意思是,如果我在名为//web1的服务器上托管了两个 ASP.NET Web 应用程序(app1 和 app2),并且我只希望//web1/app1能够调用 Web 服务。我知道我可以授予对//web1的 IP 地址的访问权限,但这将允许//web1/app1//web1/app2访问 Web 服务。

我正在考虑使用 SSL 证书,因为我不希望 Web 应用程序处理登录名/密码。在//service上,我将授予对 //web1 的 IP 的访问权限,并将客户端证书从//web1映射到 Windows 帐户,这将只允许来自//web1的应用程序访问。但是,我该如何进一步控制对//web1/app1的访问?

4

2 回答 2

2

您可以使用标准HTTP 身份验证来控制哪些应用程序可以访问您的 Web 服务。

凭据在每个请求的Authorization标头中传递。每个 Web 服务客户端(即 //web1/app1)都应该有自己的凭据,因此如果 //web1/app2 尝试在不提供可识别凭据的情况下连接到 Web 服务,它将被拒绝访问。

我建议使用 SSL 加密所有流量,以确保身份验证信息和其他敏感数据的安全。

这里有几篇文章可能会有所帮助:

祝你好运!

于 2008-12-24T07:28:37.963 回答
0

并不真地。

证书保护客户端和服务器域之间的传输。为多个子目录拥有多个证书并没有真正的作用。

您想要做的是创建一个返回令牌的登录服务。然后,您使用该令牌来管理服务器端的会话,客户端使用它以及每个后续请求来访问和执行可用服务。(这个令牌可以访问这个网络服务吗?t/f)

您将不得不授予客户端访问某种凭据的权限。无论是证书交换还是用户/通行证,您都必须弄清楚客户实际上是谁。

于 2009-01-16T18:18:35.807 回答