M4.3: OAuth 2.0 / OIDC flow specification #32
Labels
No labels
blocked
bug
design
docs
engineering
feature
infra
priority:high
priority:low
priority:medium
question
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: sscoble/speckl#32
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
What
Specify the OAuth 2.0 authorization code flow (including PKCE) as a state machine and verify its security invariants with Z3.
Scope
Exit Criteria
Dependencies
#21 (M0.3: Z3 backend) must be complete.
Context
Part of M4.3 in
docs/PROVE-KAFKA-PLAN.md.✅ Completed. OAuth 2.0 Authorization Code + PKCE spec at
examples/OAuth2AuthorizationCode.speck. 6 actions (Authorize, ApproveAuthorization, ExchangeCode, RefreshToken, RevokeToken, VerifyPKCE), 7 invariants (NoTokenLeakage, StateCSRFProtection, AuthorizationCodeSingleUse, TokenValidityBounded, PKCECodeInterceptionPrevention, RedirectUriConsistency, ClientAuthenticationRequired). Compiles successfully with current compiler.OAuth2AuthorizationCode.speck already exists at 452 lines with full PKCE Authorization Code flow, 7 verify blocks (NoTokenLeakage, StateCSRFProtection, AuthorizationCodeSingleUse, TokenValidityBounded, PKCECodeInterceptionPrevention, RedirectUriConsistency, ClientAuthenticationRequired). This is comprehensive. Closing as done.