WebLogic中的SAML

WebLogic中的SAML,weblogic,managed,saml,Weblogic,Managed,Saml,我需要在WebLogic 10.3.6服务器中部署的2个或更多应用程序之间配置SAML。 我成功地在两个不同的域之间配置了SAML,但我需要在同一个域、不同的托管服务器中的两个应用程序之间使用SAML。如果我在同一个域、同一个托管服务器中部署应用程序,即使未配置SAML,凭据也会自动共享。 App1在iframe内调用App2。当我访问App1时,登录页面工作。当我在iframe中访问App2时,凭证从App1完美地传输到App2,但当我返回到App1时,会话结束。 在不同的域上部署应用程序一切

我需要在WebLogic 10.3.6服务器中部署的2个或更多应用程序之间配置SAML。 我成功地在两个不同的域之间配置了SAML,但我需要在同一个域、不同的托管服务器中的两个应用程序之间使用SAML。如果我在同一个域、同一个托管服务器中部署应用程序,即使未配置SAML,凭据也会自动共享。 App1在iframe内调用App2。当我访问App1时,登录页面工作。当我在iframe中访问App2时,凭证从App1完美地传输到App2,但当我返回到App1时,会话结束。 在不同的域上部署应用程序一切正常,我可以正常访问App1和App2


我无法理解当我在同一个域和不同的托管服务器中访问App2时,为什么App1的会话被终止。

我不知道它是否仍然相关: weblogic SAML2实现将JSESSIONID Cookie存储在根Cookie路径“/”下。当同一域中的托管服务器位于同一主机上时,每次将请求从一台服务器更改为另一台服务器时,都会覆盖身份验证cookie。所以你必须重新验证。。。(cookie仅存储在域名下!应用程序路径和端口无关)

解决方案是在不同的ip地址、dns名称或仅在不同的dns别名下启动每个托管服务器: e、 g.对于别名:

managedserverA.example.net points to 192.168.1.5
managedserverB.example.net points to 192.168.1.5 either
现在,您的浏览器可以在不同的域下存储身份验证cookie:

JSESSIONID CLmYRsmZJ41TgyLJkcDQNf1!1664721840 /managedserverA.example.net
JSESSIONID q6nHRsnPNscWksZw99LBJh2!606405387  /managedserverB.example.net
不要忘记更改SAML2配置中已发布的站点url,以包括每个托管服务器的dns别名:

published site url: http://managedserverA.example.net:7020/saml2
published site url: http://managedserverB.example.net:7030/saml2
干杯

托米斯拉夫·德达斯