我们正在使用ITfoxtec.Identity.Saml2库向我们的SSO进行身份验证 服务。
问题是我们正在负载平衡服务器上使用它。如果我们关闭粘性会话,则该应用程序将不再运行。
我在创建会话时尝试将isPersistent = true设置为true,但它没有任何影响。我看到过类似的问题,涉及在整个Web场中存储SAML状态,其建议包括:
更改配置,以便Webfarm上的所有服务器使用相同的机器密钥 创建相当于状态服务以存储身份验证的内容。
我认为,有一种方法可以将用户状态本机存储在cookie中,无论是否使用负载平衡,都可以重用。
关于如何对此进行攻击的任何建议?
答案 0 :(得分:0)
使用ITfoxtec.Identity.Saml2.Mvc和ASP.NET MVC,isPersitent
是CreateSession
方法上的参数。 CreateSession方法用于
ASP.NET sample application。
在接受SAML 2.0响应以创建由SessionAuthenticationModule
处理的用户身份cookie之后,将调用该方法。
默认情况下,用户身份cookie不是持久性的。设置isPersitent=true
会导致创建持久的用户身份cookie。 isPersitent
设置与负载平衡无关。
应该可以通过设置isReferenceMode=true
来支持负载平衡。引用模式将用户身份cookie从自身包含更改为指针。
在参考模式下,序列化过程中会产生一个简单的工件,令牌材料存储在与令牌处理程序关联的令牌缓存中。令牌缓存是从SessionSecurityTokenCache派生的类的实例。对于Web Farm方案,令牌缓存必须在服务器场中的所有节点上运行。
也许您需要实现令牌缓存。
已更新:
很抱歉,我没有一个例子。相反,我添加了一些可能会是完整帮助的链接。