【问题标题】:Access control to web service对 Web 服务的访问控制
【发布时间】:2010-09-28 07:09:18
【问题描述】:

这是我希望达到的目标:

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

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

【问题讨论】:

    标签: c# asp.net web-services iis certificate


    【解决方案1】:

    您可以使用标准的HTTP Authentication 来控制哪些应用程序可以访问您的网络服务。

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

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

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

    祝你好运!

    【讨论】:

      【解决方案2】:

      不是。

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-19
        • 1970-01-01
        • 2018-06-14
        相关资源
        最近更新 更多