SSO / SAML 2.0

Enterprise teams can configure SAML 2.0 SSO for centralized authentication.

Overview

localskills.sh acts as a SAML Service Provider (SP). It supports any SAML 2.0–compliant identity provider, including Okta, Azure AD, Google Workspace, and OneLogin.

Configuring SSO requires the team owner role. Users who authenticate via SSO are provisioned through Better Auth organizations.

SP configuration

Provide the following values to your identity provider. Replace {providerId} with the provider ID from the SSO settings page.

SP Metadata URL

https://localskills.sh/api/auth/sso/saml2/sp/metadata?providerId={providerId}

ACS URL

https://localskills.sh/api/auth/sso/saml2/sp/acs/{providerId}

SAML callback handler

https://localskills.sh/api/auth/sso/saml2/callback/{providerId}

IdP setup

Configure a Better Auth SSO provider from your team's SSO & Provisioning settings page.

Set a stable provider ID, the IdP issuer URL, and one or more email domains.

Paste the SAML configuration JSON required by Better Auth, including IdP metadata or entry point, certificate, service provider metadata, and attribute mapping.

Email domains

Whitelist one or more email domains for SSO (e.g. example.com). Only users with matching email domains can sign in via SAML.

Multiple domains are supported. Domain uniqueness is enforced across all teams — a domain can only be claimed by one team at a time.

Enforcement

Users start SSO by entering an email address whose domain matches a configured provider. localskills.sh then redirects through Better Auth's SSO provider ID flow.

Provisioned users are added to the team with Better Auth organization role behavior.

Note: All SSO configuration changes are tracked in the team audit log.
SSO / SAML 2.0 — localskills.sh — localskills.sh docs