当前位置: 首页 > 知识库问答 >
问题:

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

柴文林
2023-03-14

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

1.对断言进行签名:从IDP发送的断言进行了签名,并且运行良好。

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

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

我现在需要做的是让IDP(SSOCIRCLE)将响应发送到。响应签名为B。对断言进行签名

怎样才能做到呢?如果响应的签名应该不同于断言的签名,那么我需要做什么更改来处理这个问题。多谢了。

共有1个答案

严高峻
2023-03-14

HTTP重定向绑定要求在发送消息之前删除SAML消息本身上存在的任何ds:signature元素:

必须删除SAML协议消息上的任何签名,包括XML元素本身。注意,如果消息的内容包括另一个签名,例如一个签名的SAML断言,则不会移除这个嵌入的签名。然而,这种消息在编码后的长度基本上排除了使用这种机制。因此,不应使用此机制对包含签名内容的SAML协议消息进行编码。(SAML2-绑定,578-582,从PDF粘贴副本)

同时,HTTP重定向绑定要求将新的数字签名作为参数signature附加到GET URL。

除了在断言中包含签名之外,还没有标准的方法强制IDP发送消息级签名的响应消息。在使用SSL/TLS的情况下,消息的真实性和不可否认性(数字签名的特征)由传输层提供。

 类似资料:
  • 我已经开发了一个Java web应用程序,我想实现SAML。我认为这些是实现SAML的正确步骤。 服务提供商(SP,在本例中是我的应用程序)向IdP发送SAML身份验证请求 然后,IdP对其进行验证,创建SAML响应断言,并将其与证书一起签名,然后发送回SP。 然后,SP使用密钥库中证书的公钥对其进行验证,并在此基础上进一步进行 我有一个示例代码,可以创建SAML请求 我可以对其进行编码并发送给I

  • 我有一个Java web应用程序。我想为我的应用程序实现SAML单点登录登录。我有这个GitHub onelogin程序来发送请求并获得响应。但它没有正常工作。我在那里创建了一个帐户。但我没有企业账户。当我运行应用程序时,它将进入onelogin登录页面。我试图登录,但在响应中没有返回任何权限,表明我没有权限。如果我也提供了错误的凭据,那么它不会给出任何SAML响应。 所以我决定创建一个断言并签名

  • 概述 Django 使用Request 对象和Response 对象在系统间传递状态。 当请求一个页面时,Django会建立一个包含请求元数据的 HttpRequest 对象。 当Django 加载对应的视图时,HttpRequest 对象将作为视图函数的第一个参数。每个视图会返回一个HttpResponse 对象。 本文档对HttpRequest 和HttpResponse 对象的API 进行说

  • 我尝试了很多解决方案,但都是徒劳的。这就是我按照https://docs.oasis-open.org/security/saml/v2.0/saml-bindings-2.0-os.pdf的指导方针所做的: > 台阶 对auth请求进行放气,然后对其进行base64编码,最后对其进行Url编码。我们称之为AR Url编码RelayState。我们称之为RS Url编码签名算法字符串。我们称之为S

  • 在使用OpenAM和Spring security saml2示例时,我遇到了一个问题。 我按照本教程配置了Spring saml2示例以及OpenAM。现在,我在选择 http://localhost:8080/OpenAM-12.0.0 并单击登录后遇到错误,但浏览器返回“HTTP状态500 - SAML请求无效”。 示例项目和OpenAM都部署在同一个tomcat服务器上,但是我没有在任何日

  • 问题内容: 我想在基于Spring的应用程序中实现单点登录(SSO)身份验证层,以支持来自不同安全域的身份验证和授权。我选择了Shibboleth作为IdP,但我尚未确定我将用于SP的内容。 选择是: Spring Security SAML扩展:组件使新应用程序和现有应用程序都可以充当基于SAML 2.0协议的联盟中的服务提供者,并启用Web Single Sign-On。Spring Secu