SSO & Authentication
Atom supports local authentication and external identity providers via OAuth2/OIDC and SAML 2.0.
Local Authentication
By default, Atom uses local username/password authentication:
- Passwords are hashed with bcrypt (10 salt rounds)
- Sessions use JWT tokens stored in HTTP-only cookies
- The first registered user is automatically an admin
User Roles
External Identity Providers
Atom can authenticate users via any OAuth2/OIDC or SAML 2.0 provider.
Supported Provider Presets
Adding a Provider
- Go to Settings → Auth Providers
- Click a preset button (e.g., Google) or Add Custom
- Fill in the required fields:
- Click Save and toggle the provider Enabled
Provider Settings
Callback URL
Each provider needs a callback/redirect URL configured in your identity provider. Atom displays the callback URL on the provider configuration page:
https://your-atom-url/api/auth/{provider-slug}/callback
Use the Copy Callback URL button in the provider settings.
OIDC Discovery
If your provider supports OIDC Discovery, Atom can auto-fill endpoints:
- Enter the provider's Issuer URL
- Click Discover — Atom fetches the
.well-known/openid-configuration - Authorization, token, userinfo, and JWKS endpoints are filled automatically
SAML 2.0
Atom also functions as a SAML Service Provider:
- Metadata URL:
https://your-atom-url/api/saml/metadata - Configure your IdP with Atom's metadata
- Set up attribute mapping for email/username
Atom as an Identity Provider
Atom can also act as an OAuth2/OIDC provider for other applications:
OIDC Endpoints
OAuth2 Grants
- Authorization Code — Standard web app flow with consent screen
- Refresh Token — Long-lived sessions
- Client Credentials — Machine-to-machine
Creating OAuth Clients
- Go to Settings → OAuth Clients
- Click Add Client
- Configure redirect URIs
- Use the generated Client ID and Secret in your application
Forward Auth Proxy
Atom can protect external applications using forward auth:
- Go to Settings → Proxy
- Add a protected application with its backend URL
- Configure access control (all users or specific users)
- Set up your reverse proxy to use Atom's auth endpoint
See the Forward Auth Proxy Guide for detailed examples.