我半信半疑地认为,这个问题的答案将是行不通,但这是我的情况。
我们有一个旧的Flex应用程序,随着明年Flash生命周期的结束,我们仍在迁移该应用程序。该Flex应用程序通过AMF通道调用Coldfusion / IIS服务器上的远程服务。
最近,我们的客户要求我们更改身份验证以使其与使用基于SAML的身份验证切换的身份验证提供程序配合使用。由于CF服务器已脱离IIS,因此我们将Shibboleth放在IIS上以保护URL /目录,并处理来回传递给auth提供程序的操作。 auth信息以标头形式返回,然后发送回CF,将其转换为任何CF / HTML流量的可用会话都没有问题。
输入Flex和似乎是AMF工程的大风暴。会话会在5分钟后进行续订。因此,当用户处于Flex / Flash单页应用程序中时,他们会正常工作并命中5分钟,AMF不会启动或处理SAML和Shibboleth的握手,只是认为会话已死并且CF返回到Flex应用程序。
我们可以通过将iframe与生成Flash应用程序放在相同的html页面中来解决此问题,该应用程序每15秒重新加载图像文件,最后使用unix时间戳以防止缓存。之所以可行,是因为它仍然会通过IIS进行路由并导致握手正常发生,但是即使使用68字节的图像文件,并且每位用户每15秒才会发生一次握手,这似乎仍然是解决此问题的资源密集型方式,此外还有如果时间合适,用户仍然可以体验会话挂起问题。
以前有没有人处理过类似此问题的事情,并且能够提出如何强制flex / CF / AMF网关正确使用身份验证措施的想法?这只是侧面加载CF和IIS使用Shibboleth处理零件的副作用吗?
任何建议或想法都很好。老实说,只要不再使用Flex,我真的很怀疑除了我们已经在使用的解决方法之外,找不到实际的解决方案。而且不幸的是,要求提供者将有效时间增加到5分钟以上也不现实。
使用ColdFusion 2016