Skip to main content

Authentication

Norish supports email and password, OIDC, GitHub and Google sign-in. Set up one provider with environment variables for the first sign-in, then manage the rest under Settings => Admin.

The first user to sign in becomes the server owner and admin, and registration turns off.

Callback URLs

When you register an OAuth or OIDC application, use these callback URLs with your AUTH_URL as the host:

ProviderCallback URL
OIDChttps://example.norish-domain.com/api/auth/oauth2/callback/oidc
GitHubhttps://example.norish-domain.com/api/auth/callback/github
Googlehttps://example.norish-domain.com/api/auth/callback/google

Password

Email and password sign-in is on when no other provider is set up.

VariableDescriptionDefault
PASSWORD_AUTH_ENABLEDEnable email and password loginAuto

OIDC

Works with any OpenID Connect provider, like Authentik, Pocket ID or Keycloak.

docker-compose.yml (environment)
OIDC_NAME: NoraId
OIDC_ISSUER: https://auth.example.com
OIDC_CLIENT_ID: <client-id>
OIDC_CLIENT_SECRET: <client-secret>
OIDC_WELLKNOWN: https://auth.example.com/.well-known/openid-configuration
VariableDescriptionDefault
OIDC_NAMEDisplay name for the OIDC provider(empty)
OIDC_ISSUEROIDC issuer URL(empty)
OIDC_CLIENT_IDOIDC client id(empty)
OIDC_CLIENT_SECRETOIDC client secret(empty)
OIDC_WELLKNOWNWell-known URL (derived from the issuer if omitted)Derived

OIDC claim mapping

Map OIDC groups to the server admin role, and to households that members join automatically.

VariableDescriptionDefault
OIDC_CLAIM_MAPPING_ENABLEDEnable claim-based role and household assignmentfalse
OIDC_SCOPESAdditional OIDC scopes (comma-separated)(empty)
OIDC_GROUPS_CLAIMClaim name containing group membershipsgroups
OIDC_ADMIN_GROUPGroup name that grants the server admin rolenorish_admin
OIDC_HOUSEHOLD_GROUP_PREFIXPrefix for household auto-join groupsnorish_household_

GitHub

Register a new OAuth app on GitHub under Settings => Developer settings => OAuth Apps, with the GitHub callback URL above.

VariableDescriptionDefault
GITHUB_CLIENT_IDGitHub OAuth client id(empty)
GITHUB_CLIENT_SECRETGitHub OAuth client secret(empty)

Google

In the Google Cloud console, open Credentials, choose Create credentials => OAuth client ID of type Web application, and use the Google callback URL above.

VariableDescriptionDefault
GOOGLE_CLIENT_IDGoogle OAuth client id(empty)
GOOGLE_CLIENT_SECRETGoogle OAuth client secret(empty)

Public URL

OAuth callbacks need AUTH_URL set to your public URL, see Server & runtime.