SSO setup

Pro

Single sign-on through the account's identity provider. Not set: one action, which opens the provider setup your IT team completes. Verifying: the DNS record to add, and that it's waiting on DNS. Active: the provider, its domains, and whether SSO is required; only the owner can require it.

Markdown

Preview

Install

With the Candor CLI

First time? Get started sets up the registry and theme. Or with shadcn directly: npx shadcn@latest add @candor/sso-setup

Brings in: button, copy-field, locale, locked, ops, utils · npm: lucide-react@^1.67.0

Usage

TSX · The example above
"use client"

import * as React from "react"
import { SsoSetup } from "@/components/sso-setup"
import type { SsoState } from "@/lib/ops"

export default function Example() {
  const [state, setState] = React.useState<SsoState>({ kind: "active", provider: "Okta", domains: ["acme.example"], enforced: false, connectedAt: "2026-10-02" })
  return <SsoSetup className="max-w-lg" state={state} onEnforce={(enforced) => setState((s) => (s.kind === "active" ? { ...s, enforced } : s))} />
}

<SsoSetup>

PropTypeDefaultDescription
staterequiredSsoState—Where setup stands: not set, verifying the domain, or active.
onStart(() => void) | undefined—Opens the identity provider's admin portal.
onCheck(() => void) | undefined—Shows Check now while the domain is verifying.
onEnforce((on: boolean) => void) | undefined—Shows the Require SSO checkbox when active; called with the new setting.
enforceLockedstring | undefined—Why this person can't change Require SSO, e.g. only the owner can. Unset means they can.
labelstring | undefined—The section's accessible name; set it when two are on one page.
classNamestring | undefined—Extra classes for the outer element.

Strings

The fixed words, in English by default. Change any of them under ssoSetup in <LocaleProvider strings={{ … }}>; the table is exported as ssoSetupStrings.

KeyEnglish
titleSingle sign-on
onOn
verifyingVerifying domain
notSetUpNot set up
introLet people sign in with your company’s identity provider (Okta, Entra ID, Google Workspace and others). Your IT team completes the setup in the provider’s portal.
setUpSet up SSO
addRecordAdd this TXT record to {domain}’s DNS. Verification finishes once DNS has it, which can take up to a day.
txtRecordTXT record
checkNowCheck now
providerProvider
domainsDomains
connectedConnected
requireRequire SSO for {domains}
requireDetailPeople with these email domains must sign in through {provider}, not with an emailed code.