HttpWebRequest - добавление данных - PullRequest
1 голос
/ 15 марта 2011

Я создаю HttpWebRequest, чтобы запросить ответ, содержащий SAMLResponse для получения имени пользователя.
Ответ будет получен Httpmodule.
После создания my AuthRequest (как показано ниже) xml деформируется, кодируется base64, а затем кодируется url.

<samlp:AuthnRequest xmlns:samlp=urn:oasis:names:tc:SAML:2.0:protocol xmlns:saml=urn:oasis:names:tc:SAML:2.0:assertion ProtocolBinding=urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST  Version= version ID= iD 
IssueInstant=DateTime.Now.ToString() Destination= destination />

<saml:Issuer> issuer /saml:Issuer>

<samlp:NameIDPolicy AllowCreate=true Format=urn:oasis:names:tc:SAML:2.0:nameid-format:transient/>    
</samlp:AuthnRequest>

Мои postBytes для requestStream.Write(postBytes, 0, postBytes.Length) состоят из byte[] из строки, созданной из "SAMLRequest=" + SAMLRequest

Надеюсь, я еще не потерял тебя.
У меня вопрос: нужно ли поместить значение SAMLRequest в форму или это может быть кодированный xml? От чего зависит это решение?

Заранее спасибо!

1 Ответ

0 голосов
/ 15 марта 2011

Согласно saml.xml.org : отправленный IdP запрос на публикацию имеет следующее содержание:

POST /SAML2/SSO/POST HTTP/1.1
Host: idp.example.org
Content-Type: application/x-www-form-urlencoded
Content-Length: nnn
SAMLRequest=request&RelayState=token

Конечно, можно собрать HttpWebRequest в C #код с этим содержимым формы, чтобы избежать проблем, связанных с вложенными формами.

Ссылка saml.xml.org указывает, что " Значение параметра SAMLRequest является кодировкой base64 <samlp:AuthnRequest> element"

Если у вас есть IdP (например, OpenSSO ), вы сможете проверить и посмотреть, что работает.

Я предполагаю, что вы пытаетесь выполнить шаг 3 на приведенной ниже диаграмме.

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я сам не пробовал, поэтому предоставьте несколько отзывов о том, был ли этот ответ полезным или нет.enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...