JSESSIONID在我们的Spring Boot应用程序中未设置“安全”标志。该应用程序已启用,以OKTA作为IDP启用了SSO,我们使用了Spring Security-SAML
下面是应用程序的简单流程。
浏览器-> HTTPS-> AWS-ALB-> HTTP-> Spring Boot APP-> OKTA URL(HTTPS)。
此处SSL终止发生在ALB上,并且从Spring引导应用程序的角度来看,该应用程序位于HTTP上。
问题是我们的安全工具分析报告抱怨JSESSIONID没有启用“安全”标志。当我尝试如下启用安全cookie时,初始请求的JSESSIONID为“安全”,并且在删除了身份验证“安全”标志之后。
server.session.cookie.secure: true
虽然此SO thread提供了一种方法来添加“安全”的标志,我无法在ALB侧场景和SAML声明流(应用调用1563)发生由HTTP到HTTPS SSL终止涉及这一点。
是否知道如何在JessionID安全标志上设置/保留?
答案 0 :(得分:0)
在春季启动配置中添加server.tomcat.protocol-header=x-forwarded-proto
即可解决问题。
我误解了Cookie标志(安全,仅HTTP)将显示在Chrome开发者工具的请求标头中,但事实并非如此,因为仅在响应标头中显示标志,因为Set-Cookie
标头仅在响应中