Preskoči na vsebino

Identiteta za vaše aplikacije, na odprtih standardih

Pospremi vas noter.

En račun. Vsaka vrata.

Usher Identity prijavlja ljudi v vaše aplikacije z OpenID Connect in OAuth 2.1: ključi za dostop, kode, prijava z družbenimi omrežji in organizacije, pri čemer je vsako okolje ločeno od vseh drugih.

Začetek je brezplačen. Deluje tudi na vaših strežnikih.

Lobby

Stran za prijavo, ki sprejme, ne zasliši.

Lobby je stran za prijavo, ki jo Usher Identity gosti za vašo aplikacijo. Vedno pove, kam gre oseba, in je videti enako, ne glede na to, katera aplikacija jo je poslala, zato ji ljudje sčasoma zaupajo.

Nadaljevanje v
Tema
  • Vsakič imenuje izdelek, v katerega greste.
  • Ključi za dostop, kode po e-pošti in čarobne povezave, gesla pa samo, če jih želite.
  • Ista mirna stran, svetla ali temna, v vsakem izdelku.

To je delujoča kopija Lobbyja. Teče na tej strani, ničesar ne pošlje in nikogar ne prijavi.

Usher IdentityUsher IdentityNadaljevanje v Acme Notes

Dobrodošli nazaj.

Prijavite se s svojim računom Usher Identity.

Ste novi?

Zavaruje Usher Identity

Standardi, ne vezava na ponudnika

Govori protokole, ki jih vaš sklad že pozna.

Usher Identity je najprej ponudnik OpenID Connect. Uporabite naš SDK, ko vam ustreza, ali katero koli knjižnico OIDC v katerem koli jeziku. Če kdaj odidete, vašim aplikacijam ni treba spremeniti načina, kako prijavljajo ljudi.

Žetoni za osvežitev, privolitev in obsegi so vključeni.
  • OIDC Core · Discovery

    OpenID Connect

    Dokument za odkrivanje za vsako okolje, žetoni ID in userinfo. Deluje vsaka certificirana odjemalska knjižnica.

  • Samo S256

    OAuth 2.1 s PKCE

    Avtorizacijska koda s PKCE za vsakega odjemalca, javnega ali zaupnega. Brez implicitnega poteka, brez gesel na končni točki za žetone.

  • RS256 · ES256 · EdDSA

    JWKS in menjava ključev

    Vsako okolje podpisuje s svojimi ključi, objavljenimi na njegovem jwks_uri. Zamenjajte jih, ne da bi prekinili prijavljene ljudi.

  • RFC 7662 · RFC 7009

    Introspekcija in preklic

    Preverite, ali je žeton še veljaven, ali ga takoj končajte. Usher Identity ob vsaki zahtevi preveri svoje seje, zato končanje seje začne veljati takoj.

  • Odjava, ki jo sproži odvisna stran, in odjava po zalednem kanalu

    Odjavite se iz svoje aplikacije ali pa naj Usher Identity obvesti vse aplikacije, ko se seja kjer koli konča.

  • RFC 9449

    DPoP

    Žetone vežite na ključ, ki ga ima odjemalec, tako da ukraden žeton sam po sebi ni uporaben.

  • WebAuthn

    Ključi za dostop

    Polnovredni, ne dodatek. Ljudje se prijavijo s prstnim odtisom, obrazom ali varnostnim ključem in ničesar ni mogoče izvabiti z lažnim predstavljanjem.

  • TOTP

    Aplikacije za preverjanje pristnosti

    Časovne kode iz katere koli aplikacije za preverjanje pristnosti, z rezervnimi kodami. Drugi dejavnik je lahko neobvezen ali obvezen.

  • Čarobne povezave

    En dotik iz nabiralnika. Kratkotrajne, za enkratno uporabo in vezane na okolje, ki jih je poslalo.

  • Kode po e-pošti

    Šest števk, za ljudi, ki se prijavijo v eni napravi, e-pošto pa berejo v drugi.

  • Prijava z družbenimi omrežji

    Google, GitHub, Microsoft in Apple. Račun se poveže šele, ko je njegov e-poštni naslov dokazan.

  • Organizacije in ekipe

    Člani, vloge in povabila za podjetja, ki uporabljajo vašo aplikacijo.

  • Kmalu

    SAML

    Enotna prijava s ponudniki identitete za zaposlene pri vaših strankah.

  • Kmalu

    SCIM

    Dodeljevanje in odvzemanje dostopa iz imenikov vaših strank.

Kako poteka prijava

Pet korakov, vsak od njih standarden.

To je potek OpenID Connect z avtorizacijsko kodo in PKCE, isti potek, ki ga govori vsak resen ponudnik identitete. Pomaknite se skozenj.

  1. 01

    Vaša aplikacija jih pošlje v Lobby.

    Ko nekdo izbere Nadaljuj z Usher Identity, ga vaša aplikacija preusmeri na avtorizacijsko končno točko vašega okolja, z izzivom PKCE in vrednostjo state, ki jo bo pozneje preverila.

    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

    Prijavijo se, na svoj način.

    Ključ za dostop, koda po e-pošti, čarobna povezava, račun družbenega omrežja ali geslo: Lobby ponudi samo tisto, kar vaše okolje dovoljuje, in vedno pove, v katero aplikacijo gredo.

    Usher IdentityUsher IdentityNadaljevanje v Acme

    Dobrodošli nazaj.

    Uporabi ključ za dostop
    Pošlji mi kodo po e-pošti
  3. 03

    Privolijo v deljenje.

    Prvič ljudje vidijo, kaj zahteva vaša aplikacija (njihov profil, njihov e-poštni naslov, ohranjanje prijave), in privolijo enkrat.

    Acme želi:

    • videti vaše ime in sliko
    • videti vaš e-poštni naslov
    • ohraniti vašo prijavo
    PrekličiDovoli
  4. 04

    Usher Identity vrne kodo.

    Brskalnik se vrne na vaš preusmeritveni URI s kodo za enkratno uporabo, ki velja pet minut, in vrednostjo state, ki ste jo poslali in jo vaša aplikacija preveri.

    302 Found
    Location: https://app.acme.example/callback
      ?code=SplxlOBeZQQYbYS6WxSbIA
      &state=k3Jx…
  5. 05

    Vaša aplikacija jo zamenja za žetone.

    Vaš strežnik pošlje kodo in preverjevalnik PKCE na končno točko za žetone. Nazaj dobi žeton ID, ki pove, kdo so, žeton za dostop do vašega API-ja in žeton za osvežitev, da ostanejo prijavljeni.

    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
    }

Izolacija že v zasnovi

Vsako okolje je stavba zase.

Vaše produkcijsko in razvojno okolje ter okolja vseh drugih strank nimajo ničesar pomembnega skupnega. Napaka v enem ne more brati drugega, podpisovati zanj ali se vanj prijaviti.

Svoja shema Postgres
Ne stolpec najemnika v skupni tabeli: shema, ustvarjena za okolje, in v njej nič drugega.
Svoji ključi za podpisovanje
Žetonov iz enega okolja ni nikoli mogoče preveriti s ključi drugega.
Svoje zapečatene skrivnosti
Zapečatene s podatkovnim ključem okolja, ki je sam ovit z glavnim ključem.
Svoj gostitelj
Izdajatelji so na drugi domeni kot spletno mesto Usher in Console, s piškotki samo za gostitelja.

usheridentity.com

Spletno mesto, Usher Identity Console, računi Usher Identity

*.usherid.com

En izdajatelj na okolje, na ločeni domeni

Okolje

Uporabniki, seje in žetoni so v shemi, ustvarjeni za to okolje. Poizvedbe tečejo na tej shemi, nikoli na skupni tabeli s stolpcem najemnika.

Kopiraj zapečateno skrivnost odjemalca Google iz produkcijskega okolja projekta Acme v produkcijsko okolje projekta Northwind.

Za razvijalce

Vaša prva prijava, na tri načine.

Vstavite SDK, ko bo na voljo, uporabite knjižnico OIDC, ki ji že zaupate, ali začnite z branjem dokumenta za odkrivanje. Spodaj je vse isti protokol.

app/layout.tsx · app/page.tsxPrihaja s SDK-jem
// 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 />
}

Zaženite ga sami

Vaši strežniki, vaši ključi.

Uporabljajte Usher Identity kot storitev ali poženite isto platformo na svojih strežnikih, s svojimi ključi in svojo zbirko podatkov.

  • Docker

    Ena datoteka Compose: aplikacije, Postgres, Valkey, robni Caddy in izhodni posredniški strežnik. Vsebniki tečejo brez novih privilegijev in z odvzetimi zmožnostmi.

  • Ubuntu

    Dovolj je navaden strežnik Ubuntu. Caddy zaključuje TLS, skrivnosti pa so datoteke, predane vsebnikom, nikoli vgrajene v slike.

  • Postgres

    Postgres hrani vse, eno shemo na okolje. On in Valkey sta v omrežju brez poti v internet.

Iz kopije 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

Celoten vodnik za lastno gostovanje je na poti. Zgornji ukazi kažejo, kako bo videti.

Pospremite svoje uporabnike noter.

Ustvarite delovni prostor in projekt, in vaše prvo okolje dobi svojega izdajatelja, svoje ključe in svoj Lobby.

Prijavite se enkrat. Dobrodošli povsod.