Должны ли мы использовать какие-либо методы сжатия, такие как Deflater to ‹AuthnRequest› в SAML?


person mavis    schedule 05.02.2014    source источник
comment
Запросы идентификации AFAIK являются запросами POST. Если вы используете GET для идентификации себя, я вряд ли могу представить, что у вас закончатся символы.   -  person Hannes    schedule 05.02.2014
comment
в (john- james-andersen.com/blog/programming/) используется дефлятор. это я в замешательстве   -  person mavis    schedule 05.02.2014


Ответы (2)


Согласно Вики:

Сообщения протокола SAML часто передаются непосредственно в строке URL-адреса запроса HTTP GET. Поскольку длина URL-адресов на практике ограничена, привязка перенаправления HTTP подходит для коротких сообщений, таких как сообщение. Более длинные сообщения (например, содержащие подписанные утверждения SAML) следует передавать с помощью других привязок, таких как привязка HTTP POST.

Запросы или ответы SAML, передаваемые через HTTP Redirect, имеют параметр строки запроса SAMLRequest или SAMLResponse соответственно. Перед отправкой сообщение дефлируется, кодируется в base64 и кодируется в URL в указанном порядке. После получения процесс отменяется, чтобы восстановить исходное сообщение.

пример HTTP GET имеет длину менее 600 символов:

https://idp.example.org/SAML2/SSO/Redirect?SAMLRequest=fZFfa8IwFMXfBb9DyXvaJtZ1BqsURRC2Mabbw95ivc5Am3TJrXPffmmLY3%2FA15Pzuyf33On8XJXBCaxTRmeEhTEJQBdmr%2FRbRp63K3pL5rPhYOpkVdYib%2FCon%2BC9AYfDQRB4WDvRvWWksVoY6ZQTWlbgBBZik9%2FfCR7GorYGTWFK8pu6DknnwKL%2FWEetlxmR8sBHbHJDWZqOKGdsRJM0kfQAjCUJ43KX8s78ctnIz%2Blp5xpYa4dSo1fjOKGM03i8jSeCMzGevHa2%2FBK5MNo1FdgN2JMqPLmHc0b6WTmiVbsGoTf5qv66Zq2t60x0wXZ2RKydiCJXh3CWVV1CWJgqanfl0%2Bin8xutxYOvZL18NKUqPlvZR5el%2BVhYkAgZQdsA6fWVsZXE63W2itrTQ2cVaKV2CjSSqL1v9P%2FAXv4C

Если вы используете HTTP POST, параметры запроса передаются в тело. Так что никаких проблем.

Но вы действительно должны проверить, не слишком ли длинное сообщение SAMLRequest.

Примечание по безопасности: поскольку с HTTP GET весь запрос и его параметры регистрируются в любом журнале доступа http, вам действительно следует использовать POST.

person Hannes    schedule 05.02.2014

Привязка Saml2 Http Redirect явно требует, чтобы данные сначала были дефлированы, затем кодированы base64 и, наконец, URL-кодированы. Поскольку этого требует спецификация, Idp будет ожидать, что параметр строки запроса Saml2Request будет подготовлен таким образом.

Насколько я понял, обычно используется привязка Http Redirect для отправки AuthnRequest Idp, в то время как ответ всегда обрабатывается с помощью Http Post, поскольку он будет слишком большим для строки запроса.

person Anders Abel    schedule 05.02.2014