Identitet for appene dine, med åpne standarder
Viser deg inn.
Én konto. Alle dører.
Usher Identity logger folk på appene dine med OpenID Connect og OAuth 2.1: passnøkler, koder, sosial pålogging og organisasjoner, med hvert miljø holdt adskilt fra alle andre.
Gratis å begynne. Kjører også på dine egne servere.
- OpenID Connect
- OAuth 2.1
- PKCE
- WebAuthn
- JWKS
- DPoP
- TOTP
Lobbyen
En påloggingsside som ønsker velkommen, ikke forhører.
Lobbyen er påloggingssiden Usher Identity drifter for appen din. Den sier alltid hvor personen skal, og den ser lik ut uansett hvilken app som sendte dem, så folk lærer seg å stole på den.
- Viser navnet på produktet du skal til, hver gang.
- Passnøkler, koder på e-post og magiske lenker, og passord bare hvis du vil.
- Den samme rolige siden, lys eller mørk, i alle produkter.
Dette er en fungerende kopi av Lobbyen. Den kjører på denne siden, sender ingenting og logger ingen på.
Standarder, ikke innlåsing
Snakker protokollene stacken din allerede kan.
Usher Identity er først og fremst en OpenID Connect-leverandør. Bruk SDK-en vår når det passer deg, eller et hvilket som helst OIDC-bibliotek i et hvilket som helst språk. Bytter du noen gang leverandør, trenger ikke appene dine å endre hvordan de logger folk på.
- OIDC Core · Discovery
OpenID Connect
Et discovery-dokument per miljø, ID-tokener og userinfo. Alle sertifiserte klientbiblioteker fungerer.
- Bare S256
OAuth 2.1 med PKCE
Autorisasjonskode med PKCE for alle klienter, offentlige eller konfidensielle. Ingen implisitt flyt, ingen passord til token-endepunktet.
- RS256 · ES256 · EdDSA
JWKS og nøkkelrotasjon
Hvert miljø signerer med sine egne nøkler, publisert på sin jwks_uri. Roter dem uten at de som er pålogget, merker noe.
- RFC 7662 · RFC 7009
Introspeksjon og tilbakekalling
Spør om et token fortsatt er gyldig, eller avslutt det nå. Usher Identity sjekker sine egne økter ved hver forespørsel, så når du avslutter en, gjelder det med en gang.
RP-initiert og back-channel-utlogging
Logg ut fra appen din, eller la Usher Identity si fra til alle appene når en økt avsluttes et sted.
- RFC 9449
DPoP
Bind tokener til en nøkkel klienten har, så et stjålet token er verdiløst alene.
- WebAuthn
Passnøkler
Fullverdige, ikke et tillegg. Folk logger på med fingeravtrykk, ansikt eller en sikkerhetsnøkkel, og det finnes ingenting å lure fra dem.
- TOTP
Autentiseringsapper
Tidsbaserte koder fra hvilken som helst autentiseringsapp, med reservekoder. Gjør en andre faktor valgfri eller påkrevd.
Magiske lenker
Ett trykk fra innboksen. Kortlivede, til engangsbruk og bundet til miljøet som sendte dem.
Koder på e-post
Seks sifre, for folk som logger på én enhet og leser e-post på en annen.
Sosial pålogging
Google, GitHub, Microsoft og Apple. En konto kobles bare når e-postadressen er bekreftet.
Organisasjoner og team
Medlemmer, roller og invitasjoner for bedriftene som bruker appen din.
- Kommer snart
SAML
Enkel pålogging med kundenes egne identitetsleverandører for de ansatte.
- Kommer snart
SCIM
Klargjøring og avvikling av brukere fra kundenes kataloger.
Slik fungerer en pålogging
Fem trinn, alle etter standarden.
Dette er autorisasjonskodeflyten i OpenID Connect med PKCE, den samme flyten alle seriøse identitetsleverandører bruker. Bla deg gjennom den.
- 01
Appen din sender dem til Lobbyen.
Når noen velger Fortsett med Usher Identity, sender appen dem videre til miljøets autorisasjonsendepunkt, med en PKCE-utfordring og en state-verdi den sjekker senere.
GET acme.usherid.com/api/auth/oauth2/authorize ?response_type=code &client_id=acme_web &redirect_uri=https://app.acme.example/callback &scope=openid profile email offline_access &state=k3Jx… &code_challenge=E9Mel…cM &code_challenge_method=S256
- 02
De logger på, på sin måte.
En passnøkkel, en kode på e-post, en magisk lenke, en sosial konto eller et passord: Lobbyen tilbyr bare det miljøet ditt tillater, og sier alltid hvilken app de skal til.
Usher IdentityUsher IdentityFortsetter til AcmeVelkommen tilbake.
Bruk en passnøkkelSend meg en kode på e-post - 03
De godtar å dele.
Første gang ser folk hva appen din ber om (profilen, e-postadressen, å forbli pålogget), og godtar én gang.
Acme vil gjerne:
- Se navnet og bildet ditt
- Se e-postadressen din
- Holde deg pålogget
AvbrytTillat - 04
Usher Identity gir tilbake en kode.
Nettleseren går tilbake til omdirigerings-URI-en din med en engangskode som varer i fem minutter, og state-verdien du sendte, som appen din sjekker.
302 Found Location: https://app.acme.example/callback ?code=SplxlOBeZQQYbYS6WxSbIA &state=k3Jx…
- 05
Appen din bytter den mot tokener.
Serveren din sender koden og PKCE-verifikatoren til token-endepunktet. Tilbake kommer et ID-token som sier hvem de er, et tilgangstoken for API-et ditt og et oppdateringstoken for å forbli pålogget.
POST acme.usherid.com/api/auth/oauth2/token grant_type=authorization_code&code=Splx… &code_verifier=dBjftJeZ4CVP… { "token_type": "Bearer", "access_token": "eyJhbGciOiJSUzI1NiIs…", "id_token": "eyJhbGciOiJSUzI1NiIs…", "refresh_token": "8xLOxBtZp8…", "expires_in": 600 }
Isolasjon fra grunnen av
Hvert miljø er en egen bygning.
Produksjons- og utviklingsmiljøene dine, og alle andre kunders, deler ingenting som betyr noe. En feil i ett av dem kan ikke lese fra, signere for eller logge på et annet.
- Eget Postgres-skjema
- Ikke en leietakerkolonne i en delt tabell, men et skjema laget for miljøet, og ingenting annet i det.
- Egne signeringsnøkler
- Tokener fra ett miljø kan aldri verifiseres mot et annet miljøs nøkler.
- Egne forseglede hemmeligheter
- Forseglet med miljøets egen datanøkkel, som selv er pakket inn av en hovednøkkel.
- Egen vert
- Utstedere ligger på et annet domene enn Ushers nettsted og Console, med informasjonskapsler bare for verten.
usheridentity.com
Nettstedet, Usher Identity Console, kontoer hos Usher Identity
*.usherid.com
Én utsteder per miljø, på et eget domene
Brukere, økter og tokener ligger i et skjema laget for dette miljøet. Spørringer kjøres mot det skjemaet, aldri mot en delt tabell med en leietakerkolonne.
Kopier den forseglede Google-klienthemmeligheten fra Acme produksjon til Northwind produksjon.
For utviklere
Din første pålogging, på tre måter.
Ta i bruk SDK-en når den kommer, bruk OIDC-biblioteket du allerede stoler på, eller begynn med å lese discovery-dokumentet. Under panseret er det den samme protokollen.
// app/layout.tsx
import { UsherProvider } from '@usher/nextjs'
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="en">
<body>
<UsherProvider>{children}</UsherProvider>
</body>
</html>
)
}
// app/page.tsx
import { SignIn, UserButton, currentUser } from '@usher/nextjs'
export default async function Page() {
const user = await currentUser()
return user ? <UserButton /> : <SignIn />
}Kjør det selv
Dine servere, dine nøkler.
Bruk Usher Identity som en tjeneste, eller kjør den samme plattformen på dine egne servere, med dine egne nøkler og din egen database.
Docker
Én Compose-fil: appene, Postgres, Valkey, Caddy i kanten og den utgående proxyen. Containerne kjører uten nye privilegier og med capabilities fjernet.
Ubuntu
En vanlig Ubuntu-server er nok. Caddy terminerer TLS, og hemmeligheter er filer som gis til containerne, aldri bakt inn i imagene.
Postgres
Postgres har alt, ett skjema per miljø. Den og Valkey ligger på et nettverk uten rute til internett.
# on an Ubuntu server with Docker Engine and the Compose plugin
bash infra/scripts/setup-env.sh --prod \
--domain usher.example --tenant-domain usherid.example
docker compose -f compose.yaml -f compose.prod.yaml \
--profile core --profile apps --profile edge up -d --wait
pnpm db:migrate # applies the database migrationsDen fullstendige veiledningen for egen drift er på vei. Kommandoene over viser hvordan den blir.
Vis brukerne dine inn.
Opprett et arbeidsområde og et prosjekt, så får ditt første miljø sin egen utsteder, egne nøkler og egen Lobby.
Logg på én gang. Velkommen overalt.