Fix #22: OAuth2 sign-up toegestaan via @request.context-rule (eerste Microsoft-login werkt weer) #23
Reference in New Issue
Block a user
Delete Branch "fix/issue-22-oauth2-signup-rule"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #22
Wat dit oplost
Elke eerste Microsoft-login faalde met 403 "Only superusers can perform this action" op
auth-with-oauth2. PocketBase past decreateRuletoe op het automatisch aanmaken van het record tijdens de OAuth2-sign-up;team_membersstond opcreateRule: null(= superuser-only). Omdat de pre-Azure-records bewust gedropt zijn, was íedereen een eerste login → niemand kon erin. Volledige analyse + lokale repro in #22.De fix
createRule: '@request.context = "oauth2"'— record-creatie mag uitsluitend vanuit de OAuth2-flow. Anonieme REST-creates (waarmee anders vooraf rogue admin-profielen klaargezet zouden kunnen worden) blijven geweigerd; expliciet getest.1781000002_allow_oauth2_signup.js(nieuw): past de rule toe op reeds-gemigreerde omgevingen (Labs), guarded + down-migratie1781000000_team_members_to_auth.js: zelfde rule voor verse omgevingen (bestandsnaam ongewijzigd — ledger-veilig)scripts/setup-pb-collections.mjsgespiegeld;docs/auth-spec.mdADR 009Verificatie (mock-OIDC tegen PocketBase v0.30.4)
enrollment_status=not_started, naam uit OIDC-claimrole=adminviaENTRA_ADMIN_EMAILSRegressie: DoD-harness #18 15/15,
npm test112/112.Let op bij de merge
⚠️ Deze branch is gestapeld op
fix/issue-20-caddyfile-crash(PR #21, nog niet gemerged) — bewust: aftakken van main zou de PR-pipeline het kapotte Caddyfile laten bouwen en Labs opnieuw neerhalen. Deze PR mergen brengt óók de #20-fix binnen (PR #21 wordt daarmee leeg en kan dicht). Volgorde-alternatief: eerst #21 mergen, dan krimpt deze diff automatisch.Resterende menselijke check na deploy: inloggen met een echt Microsoft-account (E2E uit #18).
Follow-up (bewust buiten scope, zie #22)
TeamManager:
updateRule/deleteRulestaan rolbeheer door app-admins niet toe (alleen superusers via dashboard) — eigen afweging waard.🤖 Generated with Claude Code
Live-rollout geslaagd (run #93): deploy-dev groen, PLAY RECAP
failed=0, beide gates gepasseerd, migratie1781000002toegepast bij boot (PB start anders niet), proxy-keten 200, OIDC-provider aanwezig, reconcilerin-sync.Lokale bewijsmatrix (mock-OIDC, v0.30.4): 9/9 — incl. baseline die de productie-403 exact reproduceert op de oude regel, en de check dat anonieme REST-creates geweigerd blijven. Regressie: #18-harness 15/15,
npm test112/112.Laatste check (mens): log in met een Microsoft-account op Labs — de eerste login hoort nu een
team_members-record aan te maken (rol viaENTRA_ADMIN_EMAILS, onboarding-statusnot_started).Merge-volgorde: deze branch bevat de #20-commits (PR #21) — deze PR mergen sluit beide gaten in één keer; PR #21 kan daarna dicht.