2017-01-05 2 views
0
> <samlp:LogoutRequest ID="_36167d94-d868-4c04-aee3-8bbd4ed91317" 
> Version="2.0" IssueInstant="2017-01-05T16:21:55.704Z" 
> Destination="https://werain.me/" 
> xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"><Issuer 
> xmlns="urn:oasis:names:tc:SAML:2.0:assertion">urn:federation:MicrosoftOnline</Issuer><NameID 
> Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent" 
> xmlns="urn:oasis:names:tc:SAML:2.0:assertion">4948f6ce-4e3b-4538-b284-1461f9379b48</NameID><samlp:SessionIndex>_eafbb730-b590-0134-a918-00d202739c81</samlp:SessionIndex></samlp:LogoutRequest> 

Учитывая мой запрос на выход, выглядит так. Если я должен проверить запрос Выхода я должен построить строку, которая выглядит следующим образом (то есть необработанное значение строки)Какое возможное значение для конкатенированной строки для генерации подписи SAML

SAMLRequest=<samlp:LogoutRequest ID="_36167d94-d868-4c04-aee3-8bbd4ed91317" ... </samlp:LogoutRequest>&SigAlg=http://www.w3.org/2000/09/xmldsig#rsa-sha1 

, а затем проверить подпись на строку выше, или я должен encode значения SAMLRequest и SigAlg

т.е.

SAMLRequest=Base64 encode value or raw logout request&SigAlg=http%3A%2F%2Fwww.w3.org%2F2000%2F09%2Fxmldsig%23rsa-sha1 

Причина этой путаницы SAML спецификации говорит, извлеченные из here

Строка, состоящая из конкатенации сырой, незакодированной XML , составляющих сообщение протокола SAML (не в кодировке base64 версии),

Но OneSAML Создайте подпись с версией Base64 Кодирование запрос (выход из системы). Посмотрите на here

Не уверен, что такое правильная реализация, которую я должен использовать для проверки подписи.

ПРИМЕЧАНИЕ: HTTP-перенаправление BINDING.

ответ

0

Ваша ссылка и цитата не связаны с привязкой HTTP-Redirect.

Проверьте 3.4.4.1 сечения https://docs.oasis-open.org/security/saml/v2.0/saml-bindings-2.0-os.pdf

SAML инструментарии OneLogin воплощало подпись после стандарта.

Вы можете увидеть, например, что реализация simpleSAMLphp построить подпись на Перенаправление привязки по тому же пути: https://github.com/simplesamlphp/saml2/blob/master/src/SAML2/HTTPRedirect.php#L22

Или opensaml https://github.com/apigee/java-opensaml2/blob/master/src/main/java/org/opensaml/saml2/binding/encoding/HTTPRedirectDeflateEncoder.java#L162

Вы можете играть подписания и проверки SAML сообщения с: https://www.samltool.com/online_tools.php

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