Feature OAuth2 & OpenID Connect

Authentication without the overhead

Canopy provides a standards-based OAuth2 and OpenID Connect implementation out of the box: hosted login, secure token issuance, and verifiable RS256 JWTs. Redirect users to Canopy and your application never touches a password.

OAuth2 + PKCE RS256 JWTs OIDC standard
your app
Your application
redirect →
id.canopy
Hosted login
canopy handles auth
JWT · RS256
Signed token
verified locally

Your application receives a signed token and never handles passwords directly.

Hosted login page

Redirect to Canopy. We handle the rest.

Login, registration, email verification, password reset, and session management are all handled for you. Your application receives a signed token and never handles passwords directly.

Login & registration, fully hosted
Email verification & password reset
Session management out of the box
PKCE authorization flow

The recommended flow for modern apps

Canopy implements OAuth2 authorization-code with mandatory PKCE (S256). The code challenge protects against authorization-code interception, and your backend completes the token exchange using both the verifier and the client secret.

Your application
confidential client
1
Generate a code_verifier and derive a code_challenge.
2
Redirect to Canopy with the challenge attached.
5
From your backend, exchange the auth code + verifier with your client secret.
6
Receive the signed access token. Done.
Canopy authorization server
verifies challenge
3
Authenticate the user on the hosted login page.
4
Return a short-lived authorization code.
Hash the verifier, compare to the stored challenge, validate the client secret, then issue the token.
Secret stays on your backend Resists code interception Mandatory PKCE, S256 only
RS256 JWTs & JWKS

Verify tokens locally. No round-trip.

Access tokens are signed with asymmetric keys (RS256). Verify them locally using the public JWKS endpoint, no round-trip to Canopy needed. Standard claims, standard libraries, designed for high-performance applications.

Asymmetric RS256 signatures
Public JWKS endpoint for local verification
Standard claims, standard libraries
access_token · RS256
eyJhbGciOiJSUzI1Ni….eyJzdWIiOiJ1XzgzMTI….sf9kP2mQxVz4Lq8…
alg
RS256
sub
u_8312
env
acme_prod
exp
+900s
Signature verified
via JWKS public key
no round-trip
Application registration

Register OAuth clients in minutes

Register OAuth clients through the Developer Console or API. Configure redirect URIs, manage client credentials, and control authentication flows. Supports multiple OAuth clients per environment.

Console or API registration
Configure redirect URIs & credentials
Multiple OAuth clients per environment
Web Dashboard ClientActive
Client ID
acme_web_4f2a
Environment
production
Redirect URIs
https://app.acme.com/callback
https://app.acme.com/silent-renew
Allowed flows
authorization_code+ PKCErefresh_token
Built to work with hierarchical authorization

Authentication is just the entry point

Once authenticated, identities are scoped to an account, assigned roles within each environment, and evaluated against your permission model. Authentication and authorization stay consistent.

1 Authentication

Who is this user?

Canopy verifies identity and issues a signed token.

u_8312 · verified
Signed JWT issued
2 Authorization

What can they do?

The same identity is scoped, assigned roles, and evaluated against your model.

Scoped to acme_prod
Role: Regional Manager

No mapping layer between systems. No duplication of user models.

Two paths, one platform

Own as much of the login as you want

Redirect users to Canopy’s hosted login, or drive your own UI through the Direct API. Either path returns a signed JWT, and every identity flows into hierarchical authorization.

OAuth2 + PKCE

Hosted Login

Redirect users to Canopy’s hosted login page. We own the UI, password ceremony, MFA, and email verification. Your app just exchanges the code for tokens.

Direct API

Call the identity-auth API from your own login UI with a publishable key. You build the form; Canopy handles credentials, MFA, and sessions, full control over the experience.

Unified authorization

Every authenticated identity (from either path) flows into hierarchical, role-based access. No separate user model, no mapping layer.

Two ways to sign in, one identity and authorization model.

Ready to simplify access control?

Create an account and have authentication and hierarchical access control running today.