SAML AuthnRequest not accepted

Andrew Morgan morgan at orst.edu
Wed Nov 5 18:11:26 EST 2014


We have multiple instances of Canvas LMS integrated with our Shibboleth 
IDP via InCommon metadata.  Sometime recently, our beta instance of Canvas 
started sending slightly different SAML AuthnRequests, which are causing 
an error in Shibboleth:

ERROR [org.opensaml.common.binding.decoding.BaseSAMLMessageDecoder:200] - SAML message intended destination endpoint URI required by binding was empty
WARN [edu.internet2.middleware.shibboleth.idp.profile.saml2.SSOProfileHandler:406] - Message did not meet security requirements
org.opensaml.xml.security.SecurityException: SAML message intended destination (required by binding) was not present

Here is the working SAML from the prod instance:

<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
                     ID="a5a2807dc857dfeff65a52e6474748817ced253018"
                     Version="2.0"
                     IssueInstant="2014-11-05T19:03:37Z"
                     ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
                     AssertionConsumerServiceURL="https://oregonstate.instructure.com/saml_consume"
                     >
     <saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">http://oregonstate.instructure.com/saml2</saml:Issuer>
     <samlp:NameIDPolicy xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
                         Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"
                         AllowCreate="true"
                         />
     <samlp:RequestedAuthnContext xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
                                  Comparison="exact"
                                  >
         <saml:AuthnContextClassRef xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef>
     </samlp:RequestedAuthnContext>
</samlp:AuthnRequest>


and here is the failing SAML from the beta instance:

<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
                     xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
                     ID="b1d5fc79a212e6c9f74c998523bba02de3fde40156"
                     Version="2.0"
                     ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
                     AssertionConsumerServiceURL="https://oregonstate.beta.instructure.com/saml_consume"
                     IssueInstant="2014-11-05T19:02:58Z"
                     >
     <saml:Issuer>http://oregonstate.instructure.com/saml2</saml:Issuer>
     <samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"
                         AllowCreate="true"
                         />
     <samlp:RequestedAuthnContext Comparison="exact">
         <saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef>
     </samlp:RequestedAuthnContext>
</samlp:AuthnRequest>


I see that the xmlns is defined differently, but I don't know if it is 
incorrect.  Both validate according to xmllint.

I'm already talking to Canvas about it, but I'd like to understand why 
Shibboleth is throwing an error.

Thanks,
 	Andy


More information about the users mailing list