2.2 KiB
2.2 KiB
Example: API Design with Sequential Thinking
Problem: Design authentication API for multi-tenant SaaS.
Without Sequential Thinking
"Use JWT with OAuth2. Add tenant ID to claims. Implement refresh tokens." (Misses edge cases, scaling, security)
With Sequential Thinking
Thought 1/5: Requirements
Multi-tenant SaaS authentication needs:
- Tenant isolation (prevent cross-tenant access)
- Scalability (thousands of tenants)
- Security (industry standards)
Uncertainty: Session vs token? Stateful vs stateless?
Next: Evaluate approaches
Thought 2/6: Approach evaluation (adjusted)
Comparing session vs JWT:
- Session: Server state, easy revocation, harder scaling
- JWT: Stateless, scales well, complex revocation
Multi-tenancy complicates sessions (which DB?).
JWT better for distributed systems.
Next: JWT structure
Thought 3/6: JWT payload design
JWT includes: User ID, Tenant ID, Permissions, Expiration
Uncertainty: Where verify tenant? Gateway vs service?
Next: Token refresh
Thought 4/6 [REVISION of Thought 3]: Security fix
Original: Tenant ID in JWT claims.
Issue: Claims visible (base64), could read tenant IDs.
Corrected:
- Keep tenant ID (needed for routing)
- Add gateway verification
- Log access attempts
Impact: Need gateway security layer
Thought 5/7: Refresh strategy (adjusted)
Access: 15 min
Refresh: 7 days, rotate on use
Storage:
- Access: Client memory
- Refresh: HttpOnly cookie + DB revocation
Enables revocation + stateless benefits.
Thought 6/7: Gateway flow
1. Verify JWT signature
2. Extract tenant ID
3. Verify user belongs to tenant (cache + DB)
4. Forward with verified context
Addresses Thought 4 security concern.
Thought 7/7 [FINAL]: Complete solution
- JWT with refresh rotation
- Tenant ID + gateway verification
- 15-min access, 7-day refresh
- HttpOnly cookies + revocation DB
- Gateway enforces isolation
Confidence: High
Assumptions: Distributed, centralized gateway
Trade-offs: Slight latency vs security
Key Outcomes
- Revision caught security issue: Tenant ID visibility
- Dynamic adjustment: 5→7 thoughts as complexity emerged
- Comprehensive: Authentication, authorization, multi-tenancy, revocation