Shib SP ECP - a few woes
Cantor, Scott
cantor.2 at osu.edu
Tue Oct 15 21:13:57 EDT 2013
On 10/15/13 6:38 PM, "Giovanni Bajo" <rasky at develer.com> wrote:
>To make ecp.py work correctly to the end, I had to make two patches to
>its code; I would like to know whether they make sense or not:
>
>1) When POSTing to the IdP, I had to explicitly add a Content-Type header
>with value "text/xml" to the request, otherwise my IdP wouldn't recognize
>it as a SOAP/ECP request; by default, Python urllib sends Content-Type:
>application/x-www-form-urlencoded, which is surely wrong for a SOAP
>message.
Yes, it is. The specification of the SAML SOAP binding requires SOAP 1.1,
and IIRC the content type for that is text/xml.
>2) The response from my IdP does not include a SOAP:Header within
>SOAP:Envelope. It only contains the SOAP:Body.
I don't think that can be a Shibboleth IdP then, or we have an unreported
bug.
> ecp.py was expecting the SOAP:Header to extract the ACS URL and compare
>it with the one that was mentioned in the SP response, and error out if
>those two URLs don't match.
That's mandatory behavior.
> I've patched out this check. Is this a security issue? Isn't the
>signature enough to validate the IdP response, without having to
>double-check the consistency of the ACS URL?
No.
>PS: This page:
>https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPServiceSSO
>
>doesn't document that <SSO> gets a ECP attribute. It took me a while to
>find out :P
Indirectly it does.
"Other attributes supported include settings specific to various types of
<SessionInitiator> plugins to alter the behavior of specific protocols."
-- Scott
More information about the users
mailing list