2011-05-11 102 views
5

我试图设置WCF委派,但没有成功(场景是Client> Frontend Server> Backend Server)。在理论上,这应该是直接使用Kerberos(我有一个Windows域),但在实践中,我遇到了像SSPI或甚至基本的消息安全等奇怪的错误。WCF授权的任何优秀资源?

我发现无数的浅层资源和论坛帖子,人们遇到问题并且基本上只是通过试错来猜测解决方案。我在一些所谓的“专业”和“专家”WCF书籍中查看了目录,但代表团似乎是没有人愿意讨论的东西(实际上,在例外之一中存在一个错字,即.net抛出这让我觉得,即使微软真的对此感到困扰)。

无论如何,是否有任何资源,其中有一些人实际上有线索和信心来解释整个过程A-Z,使用方法论与实际解释,而不仅仅是无用的代码块,不工作,永远不会解释?

+1

我已经使用WIF SDK(http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c148b2df-c7af-46bb-9162-2c9422208504&displaylang=en)获得WCF安全性。这可能会或可能不会帮助您的方案,但它确实具有完整的示例项目。 – 2011-05-11 01:49:10

回答

1

这是一个比WCF问题更多的Kerberos问题。

其基本思想是客户端根据安全上下文向前端服务器发出请求,然后将此安全上下文发送到后端服务器。

这不能只是在代码中修复。转发Kerberos标记的计算机必须被信任才能做到这一点。运行代码的帐户也必须被信任才能转发安全令牌。

对于一般的Kerberos:http://support.microsoft.com/kb/907272

这是Kerberos进行的SharePoint,但有很多共同之处:http://blogs.msdn.com/b/martinkearn/archive/2007/04/23/configuring-kerberos-for-sharepoint-2007-part-1-base-configuration-for-sharepoint.aspx

1

这样做的WCF代码实际上是相当简单的。配置服务帐户和Kerberos行为可能非常困难。

你之所以这么难找到例子,是因为很少有人真的这样做。执行委派的过程必须在Active Directory中(在域控制器上)的“受委托委派”的帐户下运行。这种能力非常强大,许多IT部门都有明确的政策反对它。

有一个“约束委托”的概念,它定义了哪些资源可以被访问,但这又是在Active Directory中定义的,而不是你的代码。在继续编码之前,我建议确保您有能力对Active Directory进行必要的更改。为代表团启用一个帐户是我在不止一家公司输掉的一场战斗。

对于引用我建议:

是这两个引用是有点老了,但他们都适用。 “如何”中列出的所有受限制的委派步骤均适用于Active Directory,而不是绑定到ASP。