我有调用此服务的WCF Web服务和客户端,此客户端将部署在许多位置。我必须唯一地验证和授权每个客户端。因此每个位置都有其唯一的用户名和密码。
现在我的问题是
我想了几个方法,
答案 0 :(得分:1)
您的问题可以分为三个部分。其中两个与WCF中的安全性直接相关,另一个超出了范围。
身份验证和授权 - 是的,这是可能的。 WCF提供了几种设置,允许对客户端进行身份验证并提供其角色。你也可以建立自己的。验证不在AD域中的客户端的最常见方案是使用用户名和密码凭据以及服务或使用客户端证书进行自定义验证。
自信和诚信 - 由于您对安全性的关注,您还应该涉及凭据(和邮件数据)的安全传输。如果您不提供安全传输,网络上的任何人都将能够嗅探通信并窃取凭据(或数据)。攻击者还可以拦截通信并修改传输的数据。为了保护通信,您需要在证书提供的Internet方案中使用传输安全性(TLS,SSL / HTTPS)或邮件安全性。
保护客户端上的凭据 - 这主要是您无法控制的。将凭据凭据部署到不受您控制的客户端计算机的客户端应用程序后,您永远不能强制提供所提供凭据的安全性。这取决于您的用户/客户。如果您以某种方式在应用程序中包含凭据,熟练的最终用户/攻击者可能始终能够获得它们。但这是每个安全解决方案的问题 - 有人必须能够访问凭证。
答案 1 :(得分:0)
我倾向于赞成证书。他们比u / p更难妥协。
如果您的客户端数据相当轻量级,只需在客户端应用中使用对称加密encipher an XML file。
如果您担心客户端应用程序遭到入侵,您可以使用服务器的公钥非对称地加密数据。然后,当您需要它时,您将轻量级加密数据发送到服务器并在WCF响应中将其解密。如果只在会话启动时发生这种情况,那么这可能是可行的(否则会产生很多流量)。