Security 一次登录Spring SAML CRSF
我使用Spring Saml解决方案来保护在tomcat上运行的rest api 我正在使用spring-security-saml2-core1.0.2.RELEASE和spring-security 4.1.1.RELEASE 我已经创建了Onelogin测试连接器/应用程序。如果我尝试访问,我将被正确重定向到Onelogin并可以进行身份验证。然后我被重定向到 问题::重定向后,我得到“无法验证提供的CSRF令牌,因为找不到您的会话。” 这是根据 Vladimír Schäfer提供的解决方案建议在SAML端点的securityContext中禁用CSRF 这是可行的,但由于我不熟悉spring security和spring security,因此我必须处理相关的查询:Security 一次登录Spring SAML CRSF,security,spring-security,spring-saml,onelogin,Security,Spring Security,Spring Saml,Onelogin,我使用Spring Saml解决方案来保护在tomcat上运行的rest api 我正在使用spring-security-saml2-core1.0.2.RELEASE和spring-security 4.1.1.RELEASE 我已经创建了Onelogin测试连接器/应用程序。如果我尝试访问,我将被正确重定向到Onelogin并可以进行身份验证。然后我被重定向到 问题::重定向后,我得到“无法验证提供的CSRF令牌,因为找不到您的会话。” 这是根据 Vladimír Schäfer提供的解决
- 对于Spring SAML URL,在这种情况下关闭rest api上的CSRF是否安全/最佳做法
- 如果在Spring security中启用了CSRF,Onelogin是否有办法使用Spring Saml
- ACS。断言消费者服务
- SLS。单一登出服务
- ACS。断言消费者服务
- SLS。单一登出服务
- 我不是弹簧专家,但我想我可以解决你的疑问
跨站点请求伪造(CSRF)是一种攻击,它迫使最终用户在其当前已通过身份验证的web应用程序上执行不必要的操作
SAML有自己的机制来防止不必要的操作,例如,端点上的操作需要签名SAML消息来验证它们(只有合法的源才能正确签名SAML消息,因此我们避免模拟/消息修改)
因此,基于此,我认为在以下SP端点上禁用CSRF保护是正确的:
关于另一个问题,我认为唯一的方法是在spring中使用CSRF值保存一个状态,传递一种恢复状态的方法作为RelayState参数。Onelogin将返回除SAMLResponse之外的relayState参数,您将能够恢复您的状态、恢复CSRF并避免CSRF令牌错误。我不是Spring专家,但我认为我可以解决您的疑问 跨站点请求伪造(CSRF)是一种攻击,它迫使最终用户在其当前已通过身份验证的web应用程序上执行不必要的操作 SAML有自己的机制来防止不必要的操作,例如,端点上的操作需要签名SAML消息来验证它们(只有合法的源才能正确签名SAML消息,因此我们避免模拟/消息修改) 因此,基于此,我认为在以下SP端点上禁用CSRF保护是正确的: