Add OIDC login support for Google and Microsoft providers

Implements OpenID Connect authentication flow with PKCE, JWT verification, and enterprise-only account restrictions. Adds OIDC service with JWKS caching and state management, HTTP handlers for login/callback flows, GraphQL query for available providers, and sign-in UI integration.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
This commit is contained in:
Bryan Frimin
2026-03-20 16:08:15 +01:00
parent 2f8edfb6be
commit 23084a72a2
17 changed files with 1358 additions and 7 deletions

View File

@@ -0,0 +1,19 @@
ALTER TYPE session_auth_method ADD VALUE 'GOOGLE';
ALTER TYPE session_auth_method ADD VALUE 'MICROSOFT';
CREATE TYPE iam_oidc_provider AS ENUM (
'GOOGLE',
'MICROSOFT'
);
CREATE TABLE iam_oidc_states (
id TEXT PRIMARY KEY,
provider iam_oidc_provider NOT NULL,
nonce TEXT NOT NULL,
code_verifier TEXT NOT NULL,
continue_url TEXT NOT NULL DEFAULT '',
created_at TIMESTAMP NOT NULL,
expires_at TIMESTAMP NOT NULL
);
CREATE INDEX idx_iam_oidc_states_expires_at ON iam_oidc_states(expires_at);