Skip to content

Conversation

@Adityakk9031
Copy link

Issue
The SAML Service Provider metadata endpoint (/auth/v1/sso/saml/metadata) was generating incorrect XML that used the Identity Provider's EntityID as the base URL for all Service Provider service endpoints, instead of using the Supabase project's own URLs.

Expected:

Actual (before fix): Impact: Identity Providers correctly rejected the metadata as it claimed the SP was hosted at the IDP's domain, completely blocking SAML SSO integration.

Related Issue: #41716

Root Cause
The samlsp.DefaultServiceProvider() function (from crewjam/saml v0.4.14) was incorrectly initializing the ServiceProvider's MetadataURL, AcsURL, and SloURL fields, causing them to use incorrect base URLs during metadata generation.

Solution
Explicitly override the ServiceProvider's URL fields after creation to ensure they use the correct Supabase project base URL:

MetadataURL → {base}/sso/saml/metadata
AcsURL → {base}/sso/saml/acs
SloURL → {base}/sso/saml/slo
Changes
File:
internal/api/saml.go

Added URL override logic in
getSAMLServiceProvider()
function (lines 54-72) to manually set the correct URLs after samlsp.DefaultServiceProvider() initialization.

@Adityakk9031 Adityakk9031 requested a review from a team as a code owner January 5, 2026 19:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant