带有OKTA的Spring SAML SSO-更改Web应用程序上下文时的InResponseTo

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

[OKTA SAML SSO与Spring Security的集成遇到很多麻烦。我们正在使用Spring Security的saml-dsl扩展名配置身份验证,并且在HTTP上一切正常,但是,当我们尝试使用HTTPS时,仅当应用程序部署在根(/)上下文中时,身份验证才有效。当我们将上下文更改为其他任何内容时,它将停止工作并开始引发InResponseTo字段错误,有时使用不同的配置会进入重定向循环。

这是我们正在使用的配置:

        http
                .csrf()
                .disable();
        http
                .sessionManagement().sessionFixation().none();
        http
                .logout()
                .logoutSuccessUrl("/");
        http
                .authorizeRequests()
                .antMatchers("/saml*").permitAll()
                .anyRequest().authenticated()
                .and()
                .apply(samlConfigurer())
                .serviceProvider()
                .keyStore()
                .storeFilePath(config.getKeystorePath())
                .password(config.getKeystorePassword())
                .keyname(config.getKeyAlias())
                .keyPassword(config.getKeystorePassword())
                .and()
                .protocol("https")
                .hostname(String.format("%s:%s", serverURL, config.getServerPort()))
                .basePath("/"+contextRoot)
                .and()
                .identityProvider()
                .metadataFilePath(config.getMetadataUrl());

而且我们也应该正确设置我们的OKTA(https://localhost:8443/ourappcontext/saml/SSO进行测试,所有其他内容也都在此]

我们已经尝试了这里和Spring文档中建议的大多数解决方案(空工厂,spring会话管理和会话修复等),但似乎没有任何效果。我们做错什么了吗?我们目前未生成任何SP元数据,可能是因为这有问题,并且请求已以某种方式重定向到错误的地方或其他东西了吗?到目前为止,真的很困惑,第一次使用SAML,我不确定是扩展名,OKTA配置还是Spring配置...

我们正在Wildfly上进行部署,如果需要的话,您可以通过单独的jboss-web.xml在其中设置应用程序上下文。

非常欢迎任何解决方案和想法!预先感谢。

spring security spring-security saml okta
1个回答
0
投票

默认情况下使用HttpSessionStorageFactory,这提供了HttpSessionStorage SAML消息存储。

-> HTTP会话cookie是服务器端SAML消息存储库的浏览器端密钥。

当SAML响应传递到Spring Security SAML SP时浏览器未发送HTTP会话cookie时,它找不到相关的SAML AuthNRequest,并且无法将'InResponseTo'值与匹配AuthNRequest的'ID'值进行比较。

[如果您不能确保传递了HTTP会话cookie,则可以实现自己的SAMLMessageStorageFactorySAMLMessageStorage(就像我一样)。

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