我们已经实现了一个联邦服务器,它在大多数情况下都能正常工作。它依赖于ws2007HttpBinding并实现UserNameSecurityTokenHandler的扩展(称为CustomSecurityTokenHandler)。在我们的局域网上,一切正常。
然而,我们有以下失败的场景:
1) 服务器部署在AmazonEC2上,而不是本地局域网。客户端是一个连接到服务器的WPF应用程序。当客户端安装在工作组内的pc上时,连接正常。
2) 但是,当电脑位于AD域中时,我们无法连接。这似乎不是由于网络问题:与EC2的连接仍然正常,我们确实连接到了联合提供程序,但从未进入CustomSecurityTokenHandler。
因此,看起来服务器是为我们的本地局域网正确配置的,但当服务器在某个外部网络上,客户端从我们的本地域调用时,服务器突然卡住了。
配置中可能有某种删除部分要做,但我不知道在哪里
我已经有了:
<microsoft.identityModel>
<service>
<securityTokenHandlers>
<remove type="Microsoft.IdentityModel.Tokens.WindowsUserNameSecurityTokenHandler, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add type="MyOwnFP.Federation.CustomSecurityTokenHandler, MyOwnFP.Federation"/>
任何想法都非常受欢迎。
实际上是由于服务器和客户端之间的时钟差异。通过将我的域与正确的NTP同步来解决。