Я пытаюсь подписать ответ OpenSAML с помощью Azure KeyVault, но поведение хранилища ключей по умолчанию не позволяет мне подписывать полезные данные, поскольку KeyVaultJcaProvider имеет KeyVaultKeylessRsa256Signature для подписи «SHA256withRSA».
Не существует простых способов перезаписать это поведение в KeyVaultJcaProvider
В идеале, я хочу настроить службу следующим образом, чтобы подписывающая сторона OpenSAML использовала RSASignature без использования KeyVaultKeylessRsa256Signature, но я не нашел способа обеспечить это.
putService ("Signature.SHA256withRSA","sun.security.rsa.RSASignature$SHA256withRSA")
Альтернативно, есть ли более простой способ подписать SAML с помощью OpenSAML, передав JCAProvider?
В моем коде есть следующее:
Application.java
Security.insertProviderAt(new KeyVaultJcaProvider(), 1); // working as expected
SpringApplication.run(Application.class, args);
Конфигурация, которая устанавливает учетные данные для подписи как сертификат BasicX509
@Bean
public Credential samlCredential(...) { // working as expected
...
X509Certificate certificate = (X509Certificate) keyStore.getCertificate(alias);
PrivateKey privateKey = (PrivateKey) keyStore.getKey(alias, password.toCharArray());
BasicX509Credential credential = new BasicX509Credential(certificate);
credential.setPrivateKey(privateKey);
return credential;
}
Код SAML >>
samlObject.setSignature(signature);
XMLObjectProviderRegistrySupport.getMarshallerFactory()
.getMarshaller(samlObject)
.marshall(samlObject);
Signer.signObject(signature); // BREAKS because of the JCA returning AzureKeyLessSignature which doesnt work with OpenSAML (I think?)
Это трассировка стека ошибок:
engineInitSign() not supported which private key is not instance of KeyVaultPrivateKey
at com.azure.security.keyvault.jca.implementation.signature.AbstractKeyVaultKeylessSignature.engineInitSign(AbstractKeyVaultKeylessSignature.java:77)
at com.azure.security.keyvault.jca.implementation.signature.AbstractKeyVaultKeylessSignature.engineInitSign(AbstractKeyVaultKeylessSignature.java:83)
at java.base/java.security.Signature$Delegate.engineInitSign(Signature.java:1357)
at java.base/java.security.Signature.initSign(Signature.java:636)
at org.apache.xml.security.algorithms.SignatureAlgorithmSpi.engineInitSign(SignatureAlgorithmSpi.java:212)
at org.apache.xml.security.algorithms.implementations.SignatureBaseRSA.engineInitSign(SignatureBaseRSA.java:130)
at org.apache.xml.security.algorithms.implementations.SignatureBaseRSA.engineInitSign(SignatureBaseRSA.java:136)
at org.apache.xml.security.algorithms.SignatureAlgorithm.initSign(SignatureAlgorithm.java:273)
at org.apache.xml.security.signature.XMLSignature.sign(XMLSignature.java:793)
at org.opensaml.xmlsec.signature.support.impl.provider.ApacheSantuarioSignerProviderImpl.signObject(ApacheSantuarioSignerProviderImpl.java:59)
at org.opensaml.xmlsec.signature.support.Signer.signObject(Signer.java:76)
Подробнее здесь: https://stackoverflow.com/questions/798 ... der-engine
Подписание OpenSAML с помощью Azure Key Vault с использованием Azure KeyVaultJcaProvider: engineInitSign() не поддержива ⇐ JAVA
Программисты JAVA общаются здесь
1769016920
Anonymous
Я пытаюсь подписать ответ OpenSAML с помощью Azure KeyVault, но поведение хранилища ключей по умолчанию не позволяет мне подписывать полезные данные, поскольку KeyVaultJcaProvider имеет KeyVaultKeylessRsa256Signature для подписи «SHA256withRSA».
Не существует простых способов перезаписать это поведение в KeyVaultJcaProvider
В идеале, я хочу настроить службу следующим образом, чтобы подписывающая сторона OpenSAML использовала RSASignature без использования KeyVaultKeylessRsa256Signature, но я не нашел способа обеспечить это.
putService ("Signature.SHA256withRSA","sun.security.rsa.RSASignature$SHA256withRSA")
Альтернативно, есть ли более простой способ подписать SAML с помощью OpenSAML, передав JCAProvider?
В моем коде есть следующее:
Application.java
Security.insertProviderAt(new KeyVaultJcaProvider(), 1); // working as expected
SpringApplication.run(Application.class, args);
Конфигурация, которая устанавливает учетные данные для подписи как сертификат BasicX509
@Bean
public Credential samlCredential(...) { // working as expected
...
X509Certificate certificate = (X509Certificate) keyStore.getCertificate(alias);
PrivateKey privateKey = (PrivateKey) keyStore.getKey(alias, password.toCharArray());
BasicX509Credential credential = new BasicX509Credential(certificate);
credential.setPrivateKey(privateKey);
return credential;
}
Код SAML >>
samlObject.setSignature(signature);
XMLObjectProviderRegistrySupport.getMarshallerFactory()
.getMarshaller(samlObject)
.marshall(samlObject);
Signer.signObject(signature); // BREAKS because of the JCA returning AzureKeyLessSignature which doesnt work with OpenSAML (I think?)
Это трассировка стека ошибок:
engineInitSign() not supported which private key is not instance of KeyVaultPrivateKey
at com.azure.security.keyvault.jca.implementation.signature.AbstractKeyVaultKeylessSignature.engineInitSign(AbstractKeyVaultKeylessSignature.java:77)
at com.azure.security.keyvault.jca.implementation.signature.AbstractKeyVaultKeylessSignature.engineInitSign(AbstractKeyVaultKeylessSignature.java:83)
at java.base/java.security.Signature$Delegate.engineInitSign(Signature.java:1357)
at java.base/java.security.Signature.initSign(Signature.java:636)
at org.apache.xml.security.algorithms.SignatureAlgorithmSpi.engineInitSign(SignatureAlgorithmSpi.java:212)
at org.apache.xml.security.algorithms.implementations.SignatureBaseRSA.engineInitSign(SignatureBaseRSA.java:130)
at org.apache.xml.security.algorithms.implementations.SignatureBaseRSA.engineInitSign(SignatureBaseRSA.java:136)
at org.apache.xml.security.algorithms.SignatureAlgorithm.initSign(SignatureAlgorithm.java:273)
at org.apache.xml.security.signature.XMLSignature.sign(XMLSignature.java:793)
at org.opensaml.xmlsec.signature.support.impl.provider.ApacheSantuarioSignerProviderImpl.signObject(ApacheSantuarioSignerProviderImpl.java:59)
at org.opensaml.xmlsec.signature.support.Signer.signObject(Signer.java:76)
Подробнее здесь: [url]https://stackoverflow.com/questions/79865838/opensaml-signing-with-azure-key-vault-using-azures-keyvaultjcaprovider-engine[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия