Skip to main content

Any SAML or OIDC provider

SAML 2.0​

Values for your IdP​

SettingValue
ACS URL / Reply URL (HTTP-POST)https://<workspace>.waxell.dev/api/waxell/v1/auth/saml/acs/<slug>/
SP Entity ID / Audiencehttps://<workspace>.waxell.dev/api/waxell/v1/auth/saml/metadata/<slug>/
SP metadatathe same URL. Open it in a browser to download it, or give it to an IdP that imports metadata by URL.
Name ID formaturn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
Assertionsmust be signed
AuthnRequestsunsigned (Waxell doesn't sign them)

Attributes Waxell reads​

Waxell fieldAttribute names accepted (first match)
Emailemail, mail, emailaddress, urn:oid:0.9.2342.19200300.100.1.3, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress, or the Name ID if it's an email
First namefirst_name, givenname, givenName, fn
Last namelast_name, surname, sn
Groupswhatever you set as Group claim (default groups)

Values from your IdP​

IdP entity ID (issuer), IdP single sign-on URL (HTTP-Redirect binding), and the IdP's signing certificate.

OpenID Connect​

SettingValue
Redirect URIhttps://<workspace>.waxell.dev/api/waxell/v1/auth/sso/callback/
Grant typeAuthorization code, with PKCE (S256)
Default scopesopenid email profile
DiscoveryWaxell reads <issuer>/.well-known/openid-configuration

Waxell verifies the ID token's signature, issuer, audience and nonce, then reads the user from the user-info endpoint:

ClaimRequired
subyes
emailyes
email_verifiedmust be true; unverified addresses are refused
name, given_name, family_nameoptional
groupsoptional, via your Group claim (default groups)

The Issuer URL you enter must match the iss the IdP puts in its tokens.