代码之家  ›  专栏  ›  技术社区  ›  Antony Delaney

安全Web服务

  •  4
  • Antony Delaney  · 技术社区  · 15 年前

    我将创建一个Web服务,通过网络传递机密信息。

    保护Web服务的最佳方法是什么? 我如何知道请求信息的应用程序是它所说的那个人,而不是另一个使用另一个的用户名和密码的应用程序?

    4 回复  |  直到 11 年前
        1
  •  3
  •   marc_s Hady Salah    15 年前

    为您的Web服务使用WCF!它有很多安全功能:

    你可以

    • 通过证书保护您的客户-只允许具有适当证书的客户处理其呼叫。

    • 通过在内部Active Directory域中查找客户端来保护客户端安全-只允许具有AD帐户的客户端处理其请求。

    • 使用自定义用户名/密码保护您的客户机,您可以根据需要查找任何内容(这是最灵活的,也是最复杂的选项,如果出现错误,提供最大的失败可能性)。

    另外,使用WCF,您还可以使用许多选项来保护客户端和服务之间的传输,或者加密和签名来回的消息。

    WCF Developer Center 作为所有事情的一个伟大的起点。

    如果您认真考虑如何安全地对WCF服务进行编程,请获取 Programming WCF Services Juval Lowy的书-这是为WCF准备的圣经。

    alt text http://ecx.images-amazon.com/images/I/41H2u13a9bL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU01_.jpg

        2
  •  1
  •   Bravax    15 年前

    我以前做过一两次:

    • 使用SSL
    • 写入WebService以要求从WebService上的方法检索到的令牌。
    • 从需要登录名和密码的方法返回令牌。
    • 在一定数量的WebService请求之后,或者以随机的间隔,更改所需的令牌,从而强制重新验证。

    • 如果您想,可以使用双方都理解的加密方法来加密SSL流中的数据。(如果你偏执的话。)

        3
  •  1
  •   Mark Seemann    15 年前

    您不需要编写您打算使用的实现技术,所以让我先推荐您使用 Windows通信基金会 (wcf)而不是asmx Web服务。

    使用WCF,您可以在许多不同的绑定之间进行选择,其中许多绑定提供数据保护。总体而言,Web服务有两种不同的数据保护风格:

    • 运输保护 ,其中传输机制本身以加密的形式提供保护。最著名的版本是https/ssl。但是,请注意,除非您使用客户机证书,否则服务无法保证客户机就是它所说的。
    • 消息保护 ,其中对消息本身进行加密和签名。这样的信息可以通过不受保护的网络传播,并且仍然受到保护。

    这个 WSHTPTP-绑定 根据开放标准提供消息保护。那就是我要开始的地方。

        4
  •  0
  •   Klaus Byskov Pedersen    15 年前

    看看WIF(又称日内瓦框架)。它的目的是解决你描述的确切问题。 http://msdn.microsoft.com/en-us/security/aa570351.aspx