Visual RFC.
ALL RFCs / RFC 9700
Read the RFC ↗
RFC 9700 / THE FOUNDATIONS

Authenticate the client

06

When credentials can be issued and kept confidential, require the app to prove its own identity.

Related RFCs and changes

“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.

DIAGRAM§ 2.5 ↗
RFC 9700 · § 2.5EXAMPLE
3 / 3
Authenticate the clientWhen credentials can be issued and kept confidential, require the app to prove its own identity. Current state: Validate the proof..Authenticate the clientClientAuthorizationprivate keyregistered public keysigned assertionsignverifyclient authenticated
03
Validate the proof.

The server verifies the registered credential before accepting the client authentication.

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
WHAT CHANGED
RFC 6749 § 2.3RFC 9700 § 2.5

Where client authentication is feasible, the BCP recommends asymmetric methods such as mTLS and private_key_jwt.

Read the updated RFC section ↗
KEY POINT

Prefer asymmetric client authentication.

  • Servers SHOULD enforce client authentication where credential registration and confidentiality are feasible.
  • Asymmetric methods such as mTLS and private_key_jwt are RECOMMENDED.
  • Public clients cannot safely rely on a distributed, embedded client secret.
DETAILS

With asymmetric authentication, the authorization server need not retain a shared symmetric secret. PKCE still addresses transaction binding and is recommended for confidential clients.

Read the RFC section ↗

Diagrams simplify the RFC. Read the linked sections for complete requirements.

Privacy
All chapters in this RFC
  1. OAuth overview
  2. Authorization code + PKCE
  3. Retire unsafe grants
  4. Prevent token replay
  5. Limit token privileges
  6. Authenticate the client
  7. Metadata, TLS & CORS
  8. The attacker model
  9. Redirect URI validation
  10. Referer header leakage
  11. Browser history leakage
  12. Authorization server mix-up
  13. Authorization code injection
  14. Access token injection
  15. Cross-site request forgery
  16. PKCE downgrade
  17. Leakage at resource servers
  18. Misuse of stolen tokens
  19. Open redirection
  20. 307 credential forwarding
  21. TLS termination & proxies
  22. Refresh token protection
  23. Client as resource owner
  24. Clickjacking
  25. In-browser messaging

Drawing view

Scroll the drawing to see every part. Playback controls stay above it.

RFC 9700 / CHAPTERS

Chapters

For full details, tables, algorithms, and exceptions, read the original RFC.

RFC status and corrections ↗