Configure Sign-In, MFA, and Self-Signup
Turn sign-in methods on or off per Environment in the Developer Console, require MFA with a grace period, allow self-signup, set token lifetimes, the browser origins the API accepts, and where auth-email links land.
Sign-in methods and browser origins
In the Developer Console, Tenant → Authentication is one page for every Environment's end-user authentication, in five tabs: Multi-Factor Auth, Sign-in methods, Self-signup, Tokens and Signing keys. Each tab has one row per Environment.
- Application
- Developer Console
- Path
- TenantAuthentication
- Opens with
auth_settings.viewRead every Environment's sign-in methods, MFA enforcement, and self-signup settings, and the origins hosted pages may return people to.
- Context
- Account-wide. No Application or Environment selection applies.
Sign-in methods and browser origins
https://app.example.com. Self-service sign-up accepts only a listed origin while the list is set. The list is not a firewall: an empty one does not block browser calls, because the API's cross-origin policy admits any origin an Environment lists. Under SSO return URLs, add the exact URL your app returns to after an SSO sign-in; matching is exact. Under Roles an identity provider may grant, tick the roles a customer's identity provider may hand out through directory sync or a first single sign-on, and pick the one people arrive with. Every organization without a list of its own inherits it, which is what opens directory sync for them; the organization portal's SSO setup preselects the arrival role. Choose the least privilege that lets a new person in.https://app.example.com, and click Save. From then on the Environment's password-reset, invitation and verification emails link to your app at /reset-password, /accept-invite and /verify-email, each with a token query parameter, and your own pages finish the step by calling the Direct API. Leave it empty and the links go to Canopy's hosted pages. It must be a bare https origin (http only on localhost); anything with a path is refused.https://app.example.com/login, and save. Canopy's hosted pages that end with nothing to return to (an accepted invitation, a verified email, a finished password reset) link to it as Sign in when the app involved has no sign-in URL of its own, for example an invitation that names no app. Leave it empty to clear it. It must be https (http only on localhost).https://app.example.com, and click Save. A link to a hosted page with return_to pointing at a listed origin gets a way back to your app; any other origin gets no link at all. Origins are scheme and host only, https (http only on localhost); anything with a path is refused.<canopy-captcha> widget, or logins will be rejected. Each list and field saves on its own Save; Reset discards an unsaved edit.403 auth.organization_membership_required; it toggles immediately. The notice beneath it counts the current members in no organization, who are refused from their next sign-in or refresh until they are added to one. The section reads Organizations are switched off for this environment until the container is on, which is set per Environment on the Applications page.Require MFA
MFA enforcement is per Environment. Existing sessions keep working; people are prompted to enrol at their next sign-in, and blocked once the grace period ends.
Require MFA
0 challenges on the next sign-in. Remember device (days) is how long a device skips the challenge; 0, the default, challenges every sign-in, and no "remember this device" option is offered until you raise it.Allow self-signup
Self-signup lets anyone holding the Environment's publishable key register from your app. Registrations create unverified identities that must confirm their email before signing in.
Allow self-signup
<canopy-captcha> widget, and set a Daily signup cap per UTC day, where 0 means unlimited. Click Save changes; Discard changes drops an unsaved edit.canopy:organization.manage lets them run the organization from the portal); Save changes stays disabled while the switch is on with no role, since the API refuses that. The pair reads Organizations are switched off for this environment until the container is on, set per Environment on the Applications page.Set token lifetimes
How long the sessions each Environment issues stay valid, and how long a machine client's tokens live. Changes apply to tokens issued after you save, including the next refresh of a session already running: each refresh mints its tokens with the lifetimes set then.
Set token lifetimes
Signing keys
Every Environment is its own issuer with its own signing keys. The tokens it issues carry its issuer and verify only against its keys, so a token from one Environment never verifies for another. Keys rotate on their own every 90 days; this tab is where you read the values a relying party configures, and where you rotate early.
Signing keys
@canopy-io/node SDK is configured with, and the two URLs are what an OIDC library reads from it.auth_settings.manage; a reader holding only the view sees the keys and no buttons.If you don't see this
Each control on this page exists only for someone who may use it. When something described above is missing, one of these is why:
Tell us how we can improve this guide.