2015-03-17 4 views
0

Я создаю ответ SAML 2.0 от IDP к SP. Мне нужно получить значения атрибутов SAML 2.0 из полученного мной сертификата. Ниже перечислены атрибуты SAML 2.0:Значения атрибута подписи в SAML 2.0

`<ds:SignatureValue> value from certificate </ds:SignatureValue> 
<ds:DigestValue> value from certificate </ds:DigestValue> 
` 

А также может кто-нибудь руководство мне, что именно шаги мне нужно выполнить на стороне SP успешно VALIDATE сгенерированного SignatureValue образуют данный сертификат.

Спасибо!

+0

Что вам нужно сделать, это подписать ответ. Вы не используете для этого какую-либо инфраструктуру или библиотеку? Просто простая Java? –

ответ

1

Существует является руководство Oracle о том, как проверять цифровые подписи XML с помощью API-интерфейсов java.xml.crypto.dsig:

http://docs.oracle.com/javase/7/docs/technotes/guides/security/xmldsig/XMLDigitalSignature.html

К сожалению, у меня не было легкое время на самом деле размещения образцов коды для загрузки. Я нашел один бит кода проверки образца here.

Другая хорошая статья: here.

В какой-то момент вам нужно будет получить открытый ключ SP из сертификата и предоставить его вашему валидационному коду - это описано в уроке в разделе using KeySelectors. Вы можете использовать команду keytool для извлечения из сертификата и добавления ее в хранилище ключей. Иногда это происходит из обмена ключами/сертификатами в автономном режиме; иногда сам ключ попадает в документ SAML как данные X.509 в пределах <KeyInfo>.

+0

Спасибо за такой подробный ответ scotth. Я смотрю на это. –

+0

Я просмотрел ваш ответ и следил за ссылками, которые вы упомянули. Теперь я успешно подписал свой XML-документ SAML 2.0. Но на стороне SP я не могу проверить подпись. Независимо от того, что я пытаюсь, у меня есть исключение: «org.opensaml.xml.validation.ValidationException: подпись не подтвердилась против ключа учетных данных» Я использую openSAML для проверки. Я загрузил хранилище ключей в свой код Java, получил сертификат и извлек его открытый ключ и передал его вместе с моей подписью для проверки, но не успел. Что здесь может быть отсутствует? –

+0

Отличный; Я рад, что это помогло. Если это приведет к решению, попробуйте принять его. –

Смежные вопросы