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

如何在Spring Security中更改SAML请求的签名算法

鲁光霁
2023-03-14

我正在使用spring security saml扩展来实现SSO,并将ADF作为IDP。

据我所知,Spring Security使用open saml对SAML请求进行签名,并使用SHA1with RSA作为签名算法。

我们需要更改以使用SHA256withRSA签署SAML请求。

这怎么能做到呢?

感谢您对此提出的任何建议。提前非常感谢

共有1个答案

马庆
2023-03-14

确保使用最新的Spring SAML(或至少将OpenSAML更新到最新版本)。扩展SAMLBootstrap类如下,并将其而不是原始SAMLBootstrap类插入Spring配置中:

package fi.schafer.saml.custom;

import org.opensaml.Configuration;
import org.opensaml.xml.security.BasicSecurityConfiguration;
import org.opensaml.xml.signature.SignatureConstants;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;

public class SAMLBootstrap extends org.springframework.security.saml.SAMLBootstrap {

    public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {

        super.postProcessBeanFactory(beanFactory);

        BasicSecurityConfiguration config = (BasicSecurityConfiguration) Configuration.getGlobalSecurityConfiguration();
        config.registerSignatureAlgorithmURI("RSA", SignatureConstants.ALGO_ID_SIGNATURE_RSA_SHA256);
        config.setSignatureReferenceDigestMethod(SignatureConstants.ALGO_ID_DIGEST_SHA256);

    }

}
 类似资料:
  • 对于我们的AWS APIendpoint,我们使用AWS_IAM授权,并希望从Swagger UI进行调用。要成功调用,必须有两个标题“Authorization”和“x-amz-date”。为了形成“授权”,我们使用aws文档中的以下步骤。我们必须在每次通话中更改“x-amz-date”才能通过授权。问题是:如何在Swagger中编写脚本来签署请求,该脚本在每次请求发送到aws之前都会运行?(我

  • 以下是发送给ADFS的SAML请求 压缩并转换为Base64String后,它被重定向到ADFS。带有SAML请求的URL如下所示 https://XXXX.YYYY.ZZZZ/adfs/ls/?SAMLRequest=hZHNbsIwEIRfJfLdsfODAhZEouVQJKpGJO2hl8okS7Ga2KnXoTx+A0KLuncjrflmz3Bnkju6fcvohfqwjta561xc/I

  • 我能够使用Spring Security SAML扩展使我的应用程序充当IDP socircle的SP。我的客户有以下要求: 1.对断言进行签名:从IDP发送的断言进行了签名,并且运行良好。 在考虑到弗拉基米尔的评论之后。我将绑定更改为HTTP-Post,所以现在我发送带有所示签名的SAML请求。通过执行以下操作,我能够发送使用我的私钥(而不是示例项目提供的私钥)签名的请求: 使用keygen工具

  • 我希望确认有效的已签名 SAML 注销请求是否需要 RelayState。 我们已经将微软的ADFS 2012 R2与甲骨文的身份联合会联合起来,其中ADFS是SP,OIF是IdP。作为基础,我们遵循将ADFS 2.0/3.0 SP与OIF IdP集成。 一切正常,除了注销。我们有另一个 SP 执行注销并与 OIF 合作。我们发现的一个区别是,ADFS 不会发送带有其签名注销请求的 RelaySt

  • 是否可以更改事件接收的对象的标头? 两次尝试: > 修改现有标题: 失败,原因是。 创建新的请求对象: 失败与

  • 如何在java过滤器中更改请求体以防止< code>XSS攻击?我构建了< code > http servlet requestwrapper 并使用< code>getparameter来更改主体,但得到流关闭异常。