deco Studio

Authentication

Supported auth methods and how to configure them for self-hosting

What’s supported

deco Studio uses Better Auth and supports:

  • Email/password
  • Magic link
  • Social providers (e.g. Google, GitHub)
  • SAML SSO (for enterprise orgs)

Configure auth (self-hosting)

Self-hosted deployments load an auth-config.json file at startup (see your deployment guides for mounting details).

Keep provider secrets out of Git. In production, use Secrets management (Kubernetes Secrets, External Secrets Operator, etc.).

Key environment variables

  • BETTER_AUTH_SECRET (required)
  • BETTER_AUTH_URL / BASE_URL (recommended to set explicitly in production)

Deployment-wide SSO (OIDC)

For self-hosted deployments where every user should authenticate through a single corporate Identity Provider, you can wire up SSO via environment variables. This is a deployment-wide SSO: the configured provider becomes the default for all logins matching the configured email domain — there’s no per-org setup, no admin UI step. It’s the right fit when you’re running deco Studio for a single company and want SSO enforced from day one.

If instead you want per-organization SSO (each org bringing its own IdP from the admin UI), don’t set these env vars — use the in-app Settings → SSO flow.

Only one deployment-wide SSO provider can be active at a time. If both Microsoft and Google envs are set, Microsoft takes precedence.

Common variables

Variable Description
AUTH_SSO_DOMAIN Email domain that triggers SSO (e.g. acme.com ). Required.
AUTH_SSO_SCOPES Comma-separated scopes. Default: openid,email,profile .

Microsoft (Entra ID / Azure AD)

 AUTH_SSO_DOMAIN=acme.com
AUTH_SSO_MS_TENANT_ID=<azure-tenant-id>
AUTH_SSO_MS_CLIENT_ID=<azure-app-client-id>
AUTH_SSO_MS_CLIENT_SECRET=<azure-app-client-secret> 

In the Azure portal, register an application and add the Redirect URI:

 https://<your-domain>/api/auth/sso/callback/microsoft 

Google (Workspace)

 AUTH_SSO_DOMAIN=acme.com
AUTH_SSO_GOOGLE_CLIENT_ID=<google-oauth-client-id>
AUTH_SSO_GOOGLE_CLIENT_SECRET=<google-oauth-client-secret> 

In the Google Cloud Console, create an OAuth 2.0 Client ID of type Web application and add the Authorized redirect URI:

 https://<your-domain>/api/auth/sso/callback/google 

For Workspace tenants, restrict the OAuth consent screen to your organization so only users from your domain can sign in.

Social login vs. SSO

These env vars wire up OIDC SSO (the @better-auth/sso plugin). They are separate from the social login buttons configured via auth-config.json ( socialProviders.google , socialProviders.github ) or via AUTH_GOOGLE_CLIENT_ID / AUTH_GITHUB_CLIENT_ID . Social login lets users authenticate with their personal account; deployment-wide SSO routes everyone matching AUTH_SSO_DOMAIN through the corporate IdP.

Found an error or want to improve this page?

Edit this page