Identitet til dine apps, bygget på åbne standarder
Viser dig ind.
Én konto. Alle døre.
Usher Identity logger folk ind på dine apps med OpenID Connect og OAuth 2.1: adgangsnøgler, koder, login med sociale konti og organisationer – og hvert miljø holdes adskilt fra alle andre.
Gratis at komme i gang. Kører også på dine egne servere.
- OpenID Connect
- OAuth 2.1
- PKCE
- WebAuthn
- JWKS
- DPoP
- TOTP
Lobbyen
En loginside, der byder velkommen – ikke forhører.
Lobbyen er den loginside, Usher Identity hoster til din app. Den siger altid, hvor personen er på vej hen, og den ser ens ud, uanset hvilken app der sendte dem, så folk lærer at stole på den.
- Nævner hver gang det produkt, du er på vej til.
- Adgangsnøgler, koder via e-mail og magiske links – og kun adgangskoder, hvis du vil have dem.
- Den samme rolige side, lys eller mørk, i alle produkter.
Dette er en fungerende kopi af Lobbyen. Den kører på denne side, sender intet og logger ingen ind.
Standarder, ikke indlåsning
Taler de protokoller, din stak allerede kender.
Usher Identity er først og fremmest en OpenID Connect-udbyder. Brug vores SDK, når det passer dig, eller et hvilket som helst OIDC-bibliotek i et hvilket som helst sprog. Skifter du en dag, behøver dine apps ikke at ændre, hvordan de logger folk ind.
- OIDC Core · Discovery
OpenID Connect
Et discovery-dokument pr. miljø, id-tokens og userinfo. Ethvert certificeret klientbibliotek virker.
- Kun S256
OAuth 2.1 med PKCE
Autorisationskode med PKCE for alle klienter, offentlige som fortrolige. Intet implicit flow og ingen adgangskoder til token-slutpunktet.
- RS256 · ES256 · EdDSA
JWKS og nøglerotation
Hvert miljø signerer med sine egne nøgler, der offentliggøres på dets jwks_uri. Roter dem uden at forstyrre folk, der er logget ind.
- RFC 7662 · RFC 7009
Introspektion og tilbagekaldelse
Spørg, om et token stadig er gyldigt, eller afslut det nu. Usher Identity tjekker sine egne sessioner ved hver anmodning, så det virker med det samme, når du afslutter en.
RP-initieret logout og back-channel-logout
Log ud fra din app, eller lad Usher Identity give alle apps besked, når en session slutter, uanset hvor.
- RFC 9449
DPoP
Bind tokens til en nøgle, som klienten har, så et stjålet token ikke kan bruges alene.
- WebAuthn
Adgangsnøgler
Bygget ind fra starten, ikke sat på bagefter. Folk logger ind med et fingeraftryk, et ansigt eller en sikkerhedsnøgle, og der er intet at phishe.
- TOTP
Godkendelsesapps
Tidsbaserede koder fra en hvilken som helst godkendelsesapp, med backupkoder. Gør en anden faktor valgfri eller påkrævet.
Magiske links
Ét tryk fra indbakken. Kortlivede, til engangsbrug og bundet til det miljø, der sendte dem.
Koder via e-mail
Seks cifre til folk, der logger ind på én enhed og læser e-mail på en anden.
Login med sociale konti
Google, GitHub, Microsoft og Apple. En konto bliver kun knyttet til, når dens e-mail er bekræftet.
Organisationer og teams
Medlemmer, roller og invitationer til de virksomheder, der bruger din app.
- Kommer snart
SAML
Single sign-on med de identitetsudbydere, dine kunders medarbejdere bruger.
- Kommer snart
SCIM
Oprettelse og fjernelse af brugere direkte fra dine kunders brugerkataloger.
Sådan foregår et login
Fem trin, og de er alle standard.
Dette er OpenID Connects autorisationskodeflow med PKCE – det samme flow, som enhver seriøs identitetsudbyder taler. Rul dig igennem det.
- 01
Din app sender dem til Lobbyen.
Når nogen vælger Fortsæt med Usher Identity, omdirigerer din app dem til dit miljøs autorisationsslutpunkt med en PKCE-udfordring og en state-værdi, som den tjekker 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 ind på deres måde.
En adgangsnøgle, en kode via e-mail, et magisk link, en social konto eller en adgangskode: Lobbyen tilbyder kun det, dit miljø tillader, og siger altid, hvilken app de er på vej til.
Usher IdentityUsher IdentityFortsætter til AcmeVelkommen tilbage.
Brug en adgangsnøgleSend mig en kode via e-mail - 03
De siger ja til at dele.
Første gang ser folk, hvad din app beder om (deres profil, deres e-mail, at forblive logget ind), og siger ja én gang.
Acme vil gerne:
- Se dit navn og billede
- Se din e-mailadresse
- Holde dig logget ind
AnnullerTillad - 04
Usher Identity giver en kode tilbage.
Browseren vender tilbage til din omdirigerings-URI med en engangskode, der gælder i fem minutter, og den state, du sendte, som din app tjekker.
302 Found Location: https://app.acme.example/callback ?code=SplxlOBeZQQYbYS6WxSbIA &state=k3Jx…
- 05
Din app bytter den til tokens.
Din server sender koden og PKCE-verifikatoren til token-slutpunktet. Tilbage kommer et id-token, der siger, hvem personen er, et adgangstoken til dit API og et opdateringstoken, så personen forbliver logget ind.
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 }
Isoleret fra grunden
Hvert miljø er en bygning for sig.
Dine produktions- og udviklingsmiljøer – og alle andre kunders – deler intet, der betyder noget. En fejl i ét miljø kan ikke læse fra, signere for eller logge ind i et andet.
- Sit eget Postgres-skema
- Ikke en lejerkolonne i en delt tabel, men et skema lavet til miljøet og intet andet.
- Sine egne signeringsnøgler
- Tokens fra ét miljø kan aldrig verificeres med et andet miljøs nøgler.
- Sine egne forseglede hemmeligheder
- Forseglet med miljøets egen datanøgle, som selv er pakket ind af en hovednøgle.
- Sin egen host
- Udstedere ligger på et andet domæne end Ushers websted og Console, med host-only-cookies.
usheridentity.com
Webstedet, Usher Identity Console, konti hos Usher Identity
*.usherid.com
Én udsteder pr. miljø, på et separat domæne
Brugere, sessioner og tokens ligger i et skema, der er lavet til dette miljø. Forespørgsler kører mod det skema, aldrig mod en delt tabel med en lejerkolonne.
Kopier den forseglede Google-klienthemmelighed fra Acme produktion til Northwind produktion.
Til udviklere
Dit første login, på tre måder.
Sæt SDK’et ind, når det kommer, brug det OIDC-bibliotek, du allerede stoler på, eller start med at læse discovery-dokumentet. Nedenunder er det den samme protokol.
// 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 />
}Kør det selv
Dine servere, dine nøgler.
Brug Usher Identity som en tjeneste, eller kør den samme platform på dine egne servere med dine egne nøgler og din egen database.
Docker
Én Compose-fil: apps, Postgres, Valkey, Caddy som edge og egress-proxyen. Containerne kører uden nye rettigheder og med capabilities fjernet.
Ubuntu
En almindelig Ubuntu-server er nok. Caddy afslutter TLS, og hemmeligheder er filer, der gives til containerne – de bliver aldrig bagt ind i images.
Postgres
Postgres rummer det hele med ét skema pr. miljø. Postgres og Valkey står på et netværk uden rute til internettet.
# 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 fulde vejledning i selvhosting er på vej. Kommandoerne ovenfor viser, hvordan det kommer til at se ud.
Vis dine brugere ind.
Opret et arbejdsområde og et projekt, så får dit første miljø sin egen udsteder, sine egne nøgler og sin egen Lobby.
Log ind én gang. Velkommen overalt.