关于WCF和安全性,我一直在兜圈子,所以我在这里列出了一些问题,以便获得一个清晰的画面。
1.我很想得到一个更好的解释传输与消息级安全性。
1.我 * 认为 * 我有一个在SSL下运行的服务,它将基于用户的windows凭据对用户进行身份验证。我还 * 认为 * 我理解如何通过PrincipalPermission限制对服务方法的访问。但是我实际上如何检索当前的IPrinciple,以便根据调用服务的用户返回不同的结果呢?
1.我已经找到了如何打开跟踪,我可以看到我的跟踪日志使用“微软服务跟踪日志查看器”,但我会被诅咒,如果我能弄清楚我正在显示什么。有一个体面的资源解释如何使用这个东西吗?
1.当使用“证书”clientCredentialType时,这与SSL有什么不同吗?
1.使用“Windows”clientCredentialType时,如何查看正在通过的Windows用户?
1.我的要求意味着我必须使用basicHttpBindings -我的假设是否正确:
- 我只能使用传输级安全性?
- 我无法为该绑定实现自定义用户名/密码?
编辑
1.我如何以类似于.asmx服务的方式向我的服务添加自定义SOAP头?这是一种有效的方法吗?
编辑
除了上述问题,我想知道是否有可能通过检查活动目录来验证基于windows用户的windows移动终端。就我目前所发现的而言,这似乎不太可能。
注意:对于那些不知道Windows CE的WCF版本有哪些可用的:只有传输层安全性,客户端凭据类型为none/certificate。因此,CE的WCF默认情况下似乎不允许这样做,但我可以在消息中安全地发送此信息(通过方法签名)吗?这是发送此类信息的可接受方式吗?
3条答案
按热度按时间eagi6jfj1#
我不知道所有的答案,但以下是我知道的答案
1.传输安全意味着在传输消息时对通信进行加密,使其无法被读取和/或篡改。消息安全意味着在传输时对消息本身的内容进行加密,但这不是必须的。例如,消息安全可以与HTTP一起使用,而传输安全需要使用HTTPS(或其他绑定)。
1.无应答
1.是的,虽然SSL本身使用证书,但这并不相同。您可以让客户端发送一个服务已知的证书,或者由可信机构签名的证书,以使服务知道客户端是谁,以及是否允许他们进行调用。使用SSL只能确保第三方无法通过拦截网络数据包来读取客户端和服务之间的通信。
这些问题当然也不傻。
我可以推荐Juval Lowy的书programming WCF services,它真的很有深度,并且附带了一个扩展WCF/简化某些事情的非常有用的框架。
zyfwsgd62#
看看WCF Security Guidance。如果你需要更多的信息,你应该可以在那里找到它,它相当完整。虽然看起来@olle给了一个相当完整的答案...
krcsximq3#
还要检查这些WCF Common Security Scenarios