小编Oma*_*zam的帖子

HTTP Server用于高可用性时SAML的行为

我已经实现了对SAML SSO的支持,以使我的应用程序充当使用Spring Security SAML Extension的服务提供者.我能够将我的SP与不同的国内流离失所者整合在一起.例如,我有HostA,HostB和HostC,所有这些都有我的应用程序的不同实例.我为每个主机指定了一个SP元数据文件,并使用该主机的URL设置AssertionConsumerServiceURL(EX:https:HostA.com/myapp/saml/sso).我将每个元数据文件添加到IDP并测试了所有这些文件并且工作正常.

但是,我的项目还通过配置IBM HTTP Server以实现负载平衡来支持高可用性.因此,在这种情况下,HTTP Server将主机(A,B,C)配置为用于负载平衡的主机,用户将使用HTTP服务器的URL访问我的应用程序:https:httpserver.com/myapp/

如果我定义了一个SP元数据文件并且具有在AssertionConsumerServiceURL(https://httpserver.com/saml/sso )中指定的HTTP Server的URL 并将我的实现更改为接受针对我的HTTP Server的断言,那么结果会是什么这种情况:

  1. 用户访问将用户分派给HostA的HTTPServer(幕后)
  2. HostA中的我的SP应用程序向IDP发送请求以进行身份​​验证.
  3. IDP将响应发送回我的httpserver:https: //httpserver.com/saml/sso .

HTTP服务器是否会重定向到HostA,如下所示:https: //HostA.com/saml/sso

谢谢.

high-availability saml ibmhttpserver httpserver spring-saml

4
推荐指数
1
解决办法
2363
查看次数

如何使用 Spring Security SAML 扩展对 SAML 请求/响应进行签名

我能够使用 Spring Security SAML 扩展让我的应用程序充当具有IDP SSOCIRCLE的 SP。我的客户有以下要求:

1. 对断言进行签名:从 IDP 发送的断言已签名并且工作正常。

2. 对请求/响应进行签名:使用 SSO Circle 生成元数据文件时。我选择将AuthnRequestsSigned选项设置为true。我将 SP 元数据上传到 SSO Circle IDP。SP 元数据具有以下true值:AuthnRequestsSignedWantAssertionsSigned。运行应用程序时,我的请求和收到的响应都没有签名。

我在完成第二个要求时遇到问题。我对 SAML 和一般安全性还不熟悉。我在这里缺少什么?

更新

在考虑了弗拉基米尔的意见后。我将绑定更改为 HTTP-Post,因此现在我正在发送带有所示签名的 SAML 请求。我能够通过执行以下操作来发送使用我的私钥(不是示例项目提供的私钥)签名的请求:

  1. 使用 keygen 工具创建密钥库、CSR 和公钥证书。
  2. 更新我的 SP 元数据文件中的数字签名部分以获取新证书
  3. 从 IDP SSOCIRCLE 中删除旧的 SP 元数据文件并添加新的 SP 元数据文件
  4. 更改 spring 配置以使 JKSKeyManager 使用我使用新别名和密码创建的新密钥库。

我现在需要做的是让 IDP(SSOCIRCLE) 将响应发送到 a. 响应已签名 B. 断言已签署

如何才能做到这一点?鉴于响应的签名应该与断言的签名不同,我需要做哪些更改来处理这个问题。谢谢。

spring-security x509certificate saml-2.0 xml-signature spring-saml

3
推荐指数
1
解决办法
5050
查看次数