как изменить алгоритм подписи запроса SAML в весенней безопасности

Я использую расширение saml Spring Security для реализации SSO с ADFS в качестве IDP.

Насколько я понимаю, Spring Security использует открытый saml для подписи запроса SAML с помощью SHA1withRSA в качестве алгоритма подписи.

Вместо этого нам нужно внести изменения, чтобы подписать запрос SAML с помощью SHA256withRSA.

Как это может быть сделано ?

Оцените любые предложения по этому поводу. Большое спасибо заранее


person user3280968    schedule 15.05.2014    source источник


Ответы (1)


Обязательно используйте последнюю версию 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);

    }

}
person Vladimír Schäfer    schedule 17.05.2014
comment
Можно ли сделать registerSignatureAlgorithmURI настраиваемым? - person user2628641; 12.07.2018
comment
Сейчас идет совершенно новая реализация, я не думаю, что в текущую версию будут добавлены новые функции. - person Vladimír Schäfer; 13.07.2018