WCF 安全 - 我不明白的列表
Posted
技术标签:
【中文标题】WCF 安全 - 我不明白的列表【英文标题】:WCF Security - A list of what I don't understand 【发布时间】:2010-10-02 03:36:04 【问题描述】:关于 WCF 和安全性,我在兜圈子,所以我只想在这里提出一大堆问题,希望有人能帮助我清楚地了解情况。
谁能给我一个关于传输与消息级别安全性的简单英文解释。
我认为我有一个在 SSL 下运行的服务,它将根据用户的 Windows 凭据对用户进行身份验证。我也认为我了解如何通过 PrincipalPermission 限制对服务方法的访问。但是我如何实际检索当前的 IPrinciple,以便根据调用服务的人员返回不同的结果?
我已经弄清楚如何打开跟踪,并且可以使用“Microsoft 服务跟踪日志查看器”查看我的跟踪日志,但如果我能弄清楚我正在显示什么,那我就该死了。有没有像样的资源解释如何使用这个东西?
当使用“Certificate”clientCredentialType 时,这与 SSL 有什么不同吗?
当使用“Windows”clientCredentialType 时,如何查看正在传递的 Windows 用户?
我的要求意味着我必须使用 basicHttpBindings - 我的假设是否正确:
我只有传输级别的安全性可供我使用? 我无法为此绑定实现自定义用户名/密码?我知道这些问题可能看起来很愚蠢,但任何有助于澄清的帮助都会有帮助。
编辑:
-
如何以与 .asmx 服务类似的方式将自定义 SOAP 标头添加到我的服务中?这是一种有效的方法吗?
编辑:
除上述问题外,我想知道是否可以通过检查 Active Directory 来根据其 Windows 用户对 Windows 移动设备进行身份验证。到目前为止,我发现这似乎不太可能。
注意对于那些不知道 Windows CE 的 WCF 版本有什么可用的人:仅传输级别安全性,以及客户端凭据类型的无/证书。因此,CE 的 WCF 似乎默认情况下不允许这样做,但我可以在消息中安全地发送此信息(通过方法签名)吗?这是发送此类信息的可接受方式吗?
【问题讨论】:
嘿欧文 - 他们听起来一点也不傻。我自己也想知道很多这样的东西。好问题。 谢谢,虽然我觉得我应该知道这些问题的一些答案,所以我还是觉得有点傻:-)。 【参考方案1】:我不知道所有答案,但这里是我知道的答案
-
传输安全性意味着在传输消息时对通信进行加密,因此无法读取和/或篡改。消息安全性意味着消息本身的内容在传输过程中是加密的,但不一定。例如,消息安全可以与 HTTP 一起使用,而传输安全则需要使用 HTTPS(或其他绑定)。
IPrincipal 主体 = Thread.CurrentPrincipal;
没有答案
是的,虽然 SSL 本身使用证书,但它并不相同。您可以让客户端发送一个服务已知的证书或由受信任的权威机构签署的证书,以使服务知道客户端是谁以及是否允许他们进行呼叫。使用 SSL 只会确保第三方无法通过拦截网络包来读取客户端与服务之间的通信。
IPrincipal 主体 = Thread.CurrentPrincipal;主体.身份.名称;
没有。
您可以选择无、传输、消息和混合安全性,但是传输安全性将需要使用 HTTPS 调用端点,因为这是协议的安全版本
编辑:查看this forum 的讨论。
而且这些问题当然不傻。
附:我可以推荐 Juval Lowy 的书 programming WCF services,它非常有深度,并且附带了一个非常有用的框架来扩展 WCF/简化某些事情。
【讨论】:
Olle,非常感谢您的回复。这里快凌晨 1 点了,所以我把它打了个晚上,但我真的很感谢你的帮助。 好的,如果有什么不清楚的地方请告诉我,我会尝试改写或扩展它。 我也强烈推荐 Programming WCF Services!获取第 2 版,因为它已针对 .NET 3.5 SP1 和 VS2008 SP1 进行了更新 @Olle 感谢您到目前为止的帮助,我能否请您详细说明“您可以,例如使用自定义标头。”。干杯,克里斯。 @Olle,从您的编辑看来我是正确的。在那个 basicHttpBindings 只支持传输级别的安全性,而不是消息级别。此外,似乎自定义密码身份验证是在消息级别完成的,因此它对我不可用。【参考方案2】:查看WCF Security Guidance。如果您需要更多信息,您应该可以在那里找到所有信息,它非常完整。虽然看起来@olle 给出了一个非常完整的答案......
【讨论】:
【参考方案3】:同时检查这些WCF Common Security Scenarios
【讨论】:
以上是关于WCF 安全 - 我不明白的列表的主要内容,如果未能解决你的问题,请参考以下文章