Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring安全SAML2-SP http post安全_Java_Spring_Spring Security_Saml 2.0 - Fatal编程技术网

Java Spring安全SAML2-SP http post安全

Java Spring安全SAML2-SP http post安全,java,spring,spring-security,saml-2.0,Java,Spring,Spring Security,Saml 2.0,我有一个应用程序,我正在添加SpringSecurity的SAML实现。对于我连接到的大多数IDP,我使用http post。所以我的问题是,既然所有内容都通过客户端,如果不使用签名/加密,那么客户端(本质上是中间人)是否能够轻松地在传输中修改断言?我是不是遗漏了什么?使用SAML进行http post的最佳实践是什么 **更新** 因此,经过进一步研究,我的理解是,只要响应由IDP签名,客户端就可以查看断言,但不能修改断言,只要您在SP上验证签名。因此,如果我使用ssl进行签名验证,唯一能够看

我有一个应用程序,我正在添加SpringSecurity的SAML实现。对于我连接到的大多数IDP,我使用http post。所以我的问题是,既然所有内容都通过客户端,如果不使用签名/加密,那么客户端(本质上是中间人)是否能够轻松地在传输中修改断言?我是不是遗漏了什么?使用SAML进行http post的最佳实践是什么

**更新**


因此,经过进一步研究,我的理解是,只要响应由IDP签名,客户端就可以查看断言,但不能修改断言,只要您在SP上验证签名。因此,如果我使用ssl进行签名验证,唯一能够看到响应任何部分的一方是客户,但他们不应该能够修改它,我的理解正确吗?

是的,你是正确的。客户机可以看到断言,但由于断言中的任何敏感数据都与用户有关,因此这并不重要

在用户无法读取断言内容的情况下,如果使用工件绑定,则可以通过后通道发送断言内容,或者可以对断言内容进行加密


关于数据的完整性,SAML规范明确要求接收系统验证数据的签名(在响应或断言级别)。收件人不得处理任何不受签名保护的数据。

但是,由于其中的任何敏感数据都是关于用户的,因此并不重要,因为这些数据实际上是不正确的。恶意脚本可能会更改断言数据,因此在使用前端通道协议时必须对断言进行签名。@BernhardThalmayr响应或断言上的签名是规范的严格要求,正如OP在编辑中发现的,因此我没有提及它。添加了一个编辑。