Gå til innholdet

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.

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.

Fortsetter til
Tema
  • 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å.

Usher IdentityUsher IdentityFortsetter til Acme Notes

Velkommen tilbake.

Logg på med kontoen din hos Usher Identity.

Ny her?

Sikret av Usher Identity

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å.

Oppdateringstokener, samtykke og omfang er inkludert.
  • 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.

  1. 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
  2. 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 Acme

    Velkommen tilbake.

    Bruk en passnøkkel
    Send meg en kode på e-post
  3. 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
  4. 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…
  5. 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

Miljø

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 · app/page.tsxKommer med SDK-en
// 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.

Fra en utsjekk av Usher Identity
# 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 migrations

Den 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.