Description
SSO login may fail when the client’s identity provider requires a different login method than the one used by Learn.
Steps to Replicate
Login to Blackboard Learn as administrator
Configure a SAML authentication provider using IdP metadata that contains only HTTP-Redirect as the
SingleSignOnServicebindingOpen the browser Developer Tools, select Network, and enable Preserve log
Sign out of Blackboard Learn
Start the SAML SSO login from the Blackboard Learn sign-in page
Locate the request sent from Blackboard Learn to the IdP
Verify the request method:
Affected build: Blackboard Learn sends the SAML
AuthnRequestusing POST, and the login fails.Fixed build: Blackboard Learn sends the request using GET/Redirect, and the login succeeds.
Inspect the decoded SAML
AuthnRequestDo not use the
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"attribute to determine the outbound request method. This attribute tells the IdP how to return the SAML response to Blackboard Learn, so seeingHTTP-POSThere is expectedRepeat the test with the following IdP metadata combinations:
HTTP-POST only: Request should use POST
HTTP-Redirect only: Request should use GET
Redirect listed before POST: Request should use GET
POST listed before Redirect: Request should use POST
Confirm that the fixed build uses the first supported binding listed in the IdP metadata, while the affected build always uses POST. These are the comparison conditions documented in Bug 701684 SAML SSO Login Issue – Blackboard SP Sending POST Request Instead of GET
Observed Behavior:
When SAML SSO is configured with an Identity Provider (IdP) that supports only HTTP-Redirect, Blackboard Learn sends the authentication request using HTTP POST. The IdP rejects the request, preventing users from logging in.
Expected Behavior
Should read the IdP metadata and send the authentication request using the supported binding, which is HTTP-Redirect (GET) in this scenario, allowing users to log in successfully.
Affected Versions
Learn 4001.0.0
Target Release
SaaS Fixed(4001.0.0)
