Merge branch 'feature/iam-13-oidc-provider-fuer-drittanwendungen' into feature/qa-02-pruefgate-identitaet-mandanten
# Conflicts: # DEVLOG.md # scripts/reset-test-env.sh # scripts/run-checks.sh
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
DROP TABLE oidc_auth_codes;
|
||||
DROP TABLE oidc_clients;
|
||||
@@ -0,0 +1,28 @@
|
||||
-- IAM-13: NEXARCH als OIDC-Provider fuer Drittanwendungen eines Mandanten.
|
||||
-- Client-Registrierung und Authorization-Codes leben pro Mandant (nicht in
|
||||
-- der zentralen Registry), weil ein OAuth2-Client konzeptionell zu genau
|
||||
-- einem Kunden gehoert (siehe core-kanban/tickets/IAM-13.md).
|
||||
|
||||
CREATE TABLE oidc_clients (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
name TEXT NOT NULL,
|
||||
client_id TEXT NOT NULL UNIQUE,
|
||||
secret_hash BYTEA NOT NULL,
|
||||
redirect_uris TEXT[] NOT NULL,
|
||||
allowed_scopes TEXT[] NOT NULL,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
-- Auth-Codes sind bewusst kurzlebig und einmal verwendbar (RFC 6749 4.1.2):
|
||||
-- used_at IS NULL in der WHERE-Klausel beim Einloesen macht das Konsumieren
|
||||
-- atomar, gleiches Muster wie internal/authtoken (IAM-03).
|
||||
CREATE TABLE oidc_auth_codes (
|
||||
code_hash BYTEA PRIMARY KEY,
|
||||
client_id TEXT NOT NULL REFERENCES oidc_clients(client_id),
|
||||
user_id UUID NOT NULL REFERENCES users(id),
|
||||
redirect_uri TEXT NOT NULL,
|
||||
scopes TEXT[] NOT NULL,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||
expires_at TIMESTAMPTZ NOT NULL,
|
||||
used_at TIMESTAMPTZ
|
||||
);
|
||||
Reference in New Issue
Block a user