-
Notifications
You must be signed in to change notification settings - Fork 55
blog: architecture driven auth part 3 (BBOC) #3967
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
blog: architecture driven auth part 3 (BBOC) #3967
Conversation
Edit: Browser-Based OAuth Client: The architecture you shouldn't be u…
kmaida
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm no longer a CODEOWNER, so someone from FusionAuth DevRel will need to approve final changes.
astro/src/content/blog/browser-based-oauth-client-security-architecture.mdx
Outdated
Show resolved
Hide resolved
astro/src/content/blog/browser-based-oauth-client-security-architecture.mdx
Outdated
Show resolved
Hide resolved
|
|
||
| - Cannot use client secrets in token exchange requests. | ||
| - Must rely entirely on PKCE (Proof Key for Code Exchange) for request validation. | ||
| - Cannot authenticate to the authorization server in the traditional sense. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not really sure what's meant by this. It's true, but it's not really explained enough to make sense here as a list item.
astro/src/content/blog/browser-based-oauth-client-security-architecture.mdx
Outdated
Show resolved
Hide resolved
astro/src/content/blog/browser-based-oauth-client-security-architecture.mdx
Outdated
Show resolved
Hide resolved
astro/src/content/blog/browser-based-oauth-client-security-architecture.mdx
Outdated
Show resolved
Hide resolved
|
|
||
| ### Migration to TMB | ||
|
|
||
| Backend endpoints handle OAuth flows using PKCE and store refresh tokens in server-side sessions while returning short-lived access tokens to the frontend. The frontend implements in-memory token storage with automatic refresh logic that calls the backend token endpoint when tokens near expiration. With TMB, much of the frontend OAuth logic remains similar to BBOC, and the migration focuses on moving token exchange and storage to the backend. The frontend remains complex due to direct API calls requiring access token management. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add a link to the TMB article?
astro/src/content/blog/browser-based-oauth-client-security-architecture.mdx
Outdated
Show resolved
Hide resolved
| - **Content Security Policy (CSP):** Implement strong, nonce-based CSP to block XSS attacks and restrict script execution. | ||
| - **Subresource Integrity (SRI):** Use SRI for all third-party scripts to prevent supply chain attacks from compromising your application. | ||
| - **Rate limiting:** Apply aggressive rate limiting on authentication endpoints to slow brute force and token theft attempts. | ||
| - **Demonstrating Proof of Possession (DPoP):** Implement DPoP to bind tokens to specific clients, preventing token replay by attackers. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
...and/or mTLS. I know that's a whole nother topic, but I don't think it needs to be fully explained here. A mention and link to learn more would suffice.
astro/src/content/blog/browser-based-oauth-client-security-architecture.mdx
Outdated
Show resolved
Hide resolved
Co-authored-by: Kim Maida <yi.mihi@gmail.com>
Draft feedback bboc
No description provided.