1. Platform
  2. Features
  3. Enterprise SSO
Feature Enterprise SSO

Enterprise SSO, without the onboarding call

Your enterprise customers want to sign in with their own identity provider. Canopy speaks SAML 2.0 and OIDC, and hands that customer's own IT administrator a portal where they set the connection up, verify their domain, and run a real test sign-in, without ever opening a ticket with your team.

SAML 2.0 & OIDC Self-serve tenant portal Tested before it goes live
Who does the setup

The SSO request stops being your ticket

Enterprise SSO is normally a support thread: screenshots of an identity-provider console, a certificate pasted into an email, and a configuration one of your engineers applies by hand for every customer who asks. Canopy gives that customer's own administrator a portal scoped to their organization, and six steps to work through at their own pace.

Your customer's administrator does the setup, not your engineers
Scoped to their organization: they see nothing else in your product
The connection belongs to them, and cannot be reconfigured from your Console
Set up single sign-on
Acme Corp · organization admin
Step 3 of 6
  1. Choose your identity provider
  2. Add this application
  3. 3 Connect your provider
  4. 4 Verify your domain
  5. 5 Test sign-in
  6. 6 Activate single sign-on
Nothing changes for their people until the last step.
Metadata import

One URL instead of three fields

Every identity provider publishes a metadata document describing itself. Paste its URL, or the XML when the document isn't reachable from the internet, and Canopy reads out the entity ID, the sign-in URL, and the signing certificate. The three values most likely to be mistyped are never typed at all.

Entity ID, sign-in URL, and signing certificate resolved in one step
Certificates normalized to PEM, however the provider indented them
Paste the wrong side's metadata and Canopy says so, instead of failing later
Attribute mapping

We already know what each provider calls an email address

Providers disagree about what to name a claim, and a connection that resolves nothing fails its first test sign-in on a missing attribute. Canopy recognises three of them from the host their sign-in URL points at, and seeds the connection with the names each one really sends.

OK
Okta
Plain attribute statements
Sends email asemail
ME
Microsoft Entra
WS-Federation claim URIs
Sends email as.../identity/claims/emailaddress
GW
Google Workspace
Primary address in the NameID
Sends email asNameID@emailAddress
Any other provider keeps the protocol defaults, the generic spellings stay behind the provider's own, and a mapping you set yourself is never overwritten.
Domain verification

Only the people who really work there

A connection routes sign-ins for the email domains its organization has proved it controls. Canopy issues a DNS TXT record for each one, and until that record resolves the domain is pending and routes nobody. A verified domain belongs to one account and no other.

One TXT record per domain, checked whenever they ask
A pending domain routes nothing, so a half-finished setup is harmless
Verified domains are exclusive to a single account
Domains
acme.comVerified
Routing sign-ins to this connection
acme.co.ukPending
canopy-domain-verification=3f9a2c7e...
Test sign-in

Prove it works before anyone depends on it

A test runs the real round trip against a connection that is configured but not yet live. Nothing is provisioned, no session is minted, and the test never appears in anyone's recent sign-ins. It reports the email and name the provider sent back, and whether that email's domain is verified, which is a separate question from the sign-in working.

Passed A passing test reports
Provider acceptedYes
Emaildana@acme.com
NameDana Okafor
Domain verifiedacme.com

And a failing one names a single thing to change

A failed test doesn't report that something went wrong. It returns one of ten named reasons, each pointing at one fix.

  • provider_rejectedthe person isn't assigned to the application there
  • signature_invalidthe response didn't verify against the certificate on the connection
  • assertion_expiredthe two clocks disagree by more than the allowed skew
  • audience_mismatchthe response was addressed to a different entity ID
  • issuer_mismatchit came from a different issuer than the connection expects
  • assertion_replayedthat response had already been used
  • attribute_missinga required attribute was absent under every source name
  • email_domain_not_allowedthe sign-in worked, but the domain isn't verified
  • assertion_invalidit couldn't be verified for a reason none of the above covers
  • sso_errorthe round trip failed some other way
Three ways to federate

Your admins, your users, or your customers' users

Single sign-on shows up in three places, and they're independent of each other. Run any of them, or none.

Admin SSO

Your team, into the Console

Your own administrators sign in to Canopy through your corporate provider. Configured once, for the whole account.

Never auto-creates an account. An admin has to be a member already, so a misconfigured provider can't mint administrators.
End-user SSO

Your users, into your product

Your application's users sign in through their provider, either in the hosted OAuth flow or through the Direct-API flow with a publishable key.

Provisions just in time. A verified first sign-in creates the federated identity and its membership.
Organization SSO

Your customers, setting it up themselves

The same end-user sign-in, configured by the customer's own IT administrator in a portal scoped to their organization.

The connection belongs to that organization. Sign-ins through it land there, with the membership role the binding names.
Enforcement

Turn it on, and mean it

An organization's policy can require single sign-on outright. Passwords and email codes are then refused for its members, and for any address whose domain routes to the connection, before a credential is ever checked. Because that door closes behind the administrator too, Canopy issues recovery codes so nobody is locked out of their own tenant.

Refused before a credential is checked, not after
Covers members and anyone whose domain routes to the connection
Recovery codes keep an administrator from locking themselves out
Organization policy
Require single sign-on On
Password sign-in Refused
Email code sign-in Refused
Single sign-on Required
10 recovery codes issued

Everything on this page is in the product today

Single sign-on, the organization portal, metadata import, domain verification, and test sign-in run on the Pro plan. Canopy is early-stage and says so plainly: this page describes what ships now, not what is planned.

Ready to simplify access control?

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