这就是我希望实现的目标:
我的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 的访问?
答案 0 :(得分:2)
您可以使用标准HTTP Authentication来控制哪些应用程序可以访问您的Web服务。
凭据在每个请求的授权标头中传递。每个Web服务客户端(即// web1 / app1)都应该有自己的凭据,因此如果// web1 / app2尝试连接到Web服务而不提供已识别的凭据,则会拒绝访问。
我建议使用SSL加密所有流量,以便身份验证信息和其他敏感数据是安全的。
以下是一些可能有帮助的文章:
祝你好运!答案 1 :(得分:0)
不是。
证书可保护客户端和服务器域之间的传输。为多个子目录设置多个证书并不真正有用。
您要做的是创建一个返回令牌的登录服务。然后,您可以使用该令牌管理服务器端的会话,客户端将其与每个后续请求一起使用以访问和执行可用服务。 (此令牌可以访问此Web服务吗?t / f)
您将不得不让客户端访问某种凭据。无论是证书交换还是用户/通行证,您都必须弄明白客户是谁。