如何在2台冗余服务器上设置2个相同的Shibboleth SP?

问题描述 投票:0回答:1

为了达到可用性的目的,我有一个冗余的设置,有2个前台和2个后台,每个前台都有一个web服务器,服务于相同的页面,每个前台都运行一个Shibboleth SP实例,重定向到相同的IdP,两个前台都在一个负载平衡器后面,暴露了一个独特的公共地址,负载平衡器将在shibboleth cookie上设置会话亲和力。负载均衡器会在shibboleth cookie上设置一个会话亲和力。

在第一次连接时,用户没有进行身份认证,Shibboleth SP以中继状态重定向到ADFS.身份认证后,ADFS重定向到LB公有地址。

问题是,还没有shibboleth cookie。如果不能,如何正确管理2个冗余的Shibboleth SP实例?

谢谢!请问,如何正确管理Shibboleth SP的2个冗余实例?

shibboleth redundancy shibboleth-sp
1个回答
1
投票

ADFS将用户重定向回LB地址,LB地址将SAMLResponse传给它选择的任何一个节点,这时SP(任何一个)都会看到一个有效的SAMLResponse,并发起一个cookie。如果用户被ping到另一个SP节点,这个cookie不会被SP看到有效,除非两个SP共享一个共同的session store,就像数据库一样,它会再次踢过SSO。通常会话粘性会与用户的IP挂钩,这样他们总是(或几乎总是)被重定向到同一个SP实例......如果他们的亲和力发生变化,他们仍然有一个有效的IDP会话,不应该看到登录页面。

这在很大程度上取决于你的应用程序以及如何构建......参见。https:/wiki.shibboleth.netconfluencedisplaySP3Clustering.... TL;DR: 避免聚类 SP通过利用它在一个单一的入口点上,因为它是轻量级的(有问题,但我通常会推荐)。或活用共享会话DB (这本身就有很多问题)。

© www.soinside.com 2019 - 2024. All rights reserved.