Skip to Content
ExplainerAAuth vs OAuth/OIDC

AAuth vs OAuth 2.0/OIDC

AAuth is not a replacement for OAuth or OIDC. They solve different problems. This page compares the two so you can decide which fits your use case.

Identity Model

AspectOAuth 2.0AAuth
Client identityPre-registered client_idlocal@domain with published metadata
Client metadataStored at authorization serverSelf-published at /.well-known/aauth-agent.json
Key managementClient secrets or registered public keysEphemeral keys bound via agent tokens
Multiple instancesShare single client_id and secretEach instance has unique local@domain and signing key
DiscoveryOptional (RFC 8414)Built-in via well-known metadata

Token Delivery

AspectOAuth 2.0AAuth
Token deliveryRedirect with authorization code202 + Location URL, poll with GET
User returnCarries authorization codeRedirect to callback (no tokens)
Headless clientsRequires device authorization grant (RFC 8628)Native support via polling
Long-running consentLimited by redirect timeoutUnlimited (Prefer: wait + polling)

Security Model

AspectOAuth 2.0AAuth
Request signingOptional (DPoP, mTLS)Required (HTTPSig) on every request
Token typeBearer (default)Proof-of-possession only
Message integrityNot providedHTTPSig covers method, path, headers
Resource identityNoneResource tokens with JWKS
Proxy survivalmTLS terminates at proxyHTTPSig survives proxies
AspectOAuth 2.0AAuth
What is requestedScopesScopes + justification
Why it’s requestedNot conveyedjustification parameter
User questionsNot supportedClarification chat during consent
Enterprise hintsSeparate extensionsBuilt-in: login_hint, tenant, domain_hint

Grant Types vs Unified Pattern

OAuth has multiple grant types, each with its own mechanics:

OAuth Grant TypeAAuth Equivalent
Authorization Code202 + interaction code + polling
Device Authorization (RFC 8628)202 + interaction code + polling
Client CredentialsDirect token response (no 202)
Token Exchange (RFC 8693)Cross-domain AS federation
CIBA202 + requirement=approval

AAuth replaces all of these with a single endpoint and one async pattern.

When to Use Which

Use OAuth/OIDC when:

  • You have a web application with browser-based users
  • Clients are pre-registered and known
  • You’re working within a single trust domain
  • You need compatibility with existing OAuth infrastructure

Use AAuth when:

  • Agents are autonomous or headless (no browser)
  • Clients discover resources at runtime (open ecosystem)
  • You need cross-domain federation without pre-registration
  • Bearer token security is insufficient
  • You need progressive trust levels
  • You’re building for MCP, agent frameworks, or multi-vendor toolchains