Shellius signs people in through OpenID Connect. There are presets for Google Workspace, Microsoft Entra ID, Okta and Auth0, plus Generic OIDC for any provider that publishes a discovery document.
SAML
SAML 2.0 is not available in the current setup wizard. Use OIDC.
Where the settings come from
- Saved in the portal — Administration → Single sign-on. Saved values win.
- Environment defaults —
SSO_*variables prefill the wizard the first time. Fields backed by one show an "Environment default" badge.
# Generic OIDC
SSO_ISSUER_URL=https://idp.example.com
SSO_CLIENT_ID=...
SSO_CLIENT_SECRET=...Presets have their own variables: SSO_GOOGLE_CLIENT_ID / _SECRET, SSO_ENTRA_TENANT_ID / _CLIENT_ID / _CLIENT_SECRET, SSO_OKTA_DOMAIN / _CLIENT_ID / _CLIENT_SECRET, and SSO_AUTH0_DOMAIN / _CLIENT_ID / _CLIENT_SECRET.
Set it up
The steps are the same for every provider:
In Shellius, open Administration → Single sign-on and pick your provider. The wizard shows a redirect URI of the form
https://shellius.example.com/api/auth/sso/callback.In your identity provider, register Shellius as a confidential web application and add that redirect URI to its allowed list.
Copy the client ID and client secret back into the wizard, plus the one provider-specific value:
Provider Also needs Google Workspace Nothing else. Set the consent screen to Internal to restrict sign-in to your Workspace. Microsoft Entra ID The Directory (tenant) ID. The issuer is derived as https://login.microsoftonline.com/<tenantId>/v2.0. Copy the secret's Value, not its ID.Okta Your Okta domain, such as acme.okta.com. Assign the people who may use it.Auth0 Your Auth0 domain. Create a Regular Web Application. Generic OIDC The issuer URL — the part before /.well-known/openid-configuration. Scopes are usuallyopenid email profile.Choose Test. Shellius fetches the provider's discovery document and shows the resolved issuer, scopes and authorization endpoint.
Save.
The issuer must be publicly resolvable
The discovery probe refuses private and loopback addresses and bare IP literals, so that a stored issuer URL cannot be used to scan your internal network. An identity provider on a private address will fail the test.
How the secret is handled
The client secret is encrypted at rest with SERVER_ENCRYPTION_KEY. The portal never receives it back — only whether one is set. Every change to the SSO configuration, and every test, writes an audit entry.