Let your team sign in with the account they already have at your own identity provider — Okta, Entra ID, Google Workspace, or anything else that speaks OpenID Connect. Company admins set this up themselves from Profile → Single sign-on.
Setting up takes three steps, and the order matters: each one is blocked until the one before it is done.
Add the domain your team's email addresses use (the part after the @), then publish the TXT
record shown on the card and press Check DNS.
A verified domain is what gives your provider the right to speak for those addresses. Without it a sign-in through your provider proves only where the assertion came from, not who it may speak for — so every one of them gets turned away.
Two things worth knowing:
gmail.com, outlook.com and the like are refused
outright — nobody controls their DNS, so nobody could ever verify them.This step is circular by nature, so start with the redirect URI: you can't register Oiva in your provider without knowing where it sends people back, and you can't get a client ID and secret without registering it first.
https://acme-analytics.okta.com.Only the issuer is stored. The authorize and token endpoints and the signing keys are read from its discovery document each time, so rotating keys on your side needs nothing from you here.
Saving reaches your provider once to confirm the issuer is real, rather than letting a typo surface at somebody's first login. If it can't read the configuration, the error names the issuer it tried.
The last step is separate from the one before it on purpose, and the gap between them is where you confirm sign-in actually works for your people. Have somebody sign in through the provider first.
Once required, a password stops getting anyone into this company. Membership of any other company is untouched — the requirement belongs to the membership, not to the person.
Turning it back off never asks for confirmation. That's the direction that restores access, so it's always one click away.
Somebody arriving through your provider for the first time gets an account automatically, with the default role you set in step 2.
An invitation changes that. Invite someone at an address inside a verified domain and the invitation becomes a role reservation: their first sign-in through the provider consumes it and they land with the role you picked instead of the default. So you can seed an admin before they have ever signed in.
A contractor on a personal address still gets the ordinary password invitation — your provider can't vouch for an address it doesn't own.
Single sign-on is something an existing admin turns on, so somebody always signs up the ordinary way first. If that person used a company address, nothing needs doing: their first sign-in through the provider links to the account they already have, and they keep their company, role and everything they own.
If they used a personal address, the two never meet — gmail.com isn't a domain you can verify — and
they'll keep landing on the password form. To move across: