Pereiti prie turinio

Tapatybė jūsų programoms pagal atviruosius standartus

Palydi jus vidun.

Viena paskyra. Visos durys.

Usher Identity prijungia žmones prie jūsų programų naudodama OpenID Connect ir OAuth 2.1: slaptaraktai, kodai, prisijungimas per socialinius tinklus ir organizacijos, o kiekviena aplinka atskirta nuo visų kitų.

Pradėti nemokama. Veikia ir jūsų pačių serveriuose.

Lobby

Prisijungimo puslapis, kuris pasitinka, o ne tardo.

Lobby – tai prisijungimo puslapis, kurį Usher Identity talpina jūsų programai. Jis visada nurodo, kur žmogus keliauja, ir atrodo vienodai, kad ir kuri programa jį atsiuntė, todėl žmonės išmoksta juo pasitikėti.

Tęsiama į
Tema
  • Kiekvieną kartą nurodo produktą, į kurį keliaujate.
  • Slaptaraktai, el. paštu atsiųsti kodai ir magiškosios nuorodos, o slaptažodžiai – tik jei jų norite.
  • Tas pats ramus puslapis, šviesus ar tamsus, kiekviename produkte.

Tai veikianti Lobby kopija. Ji veikia šiame puslapyje, nieko nesiunčia ir nieko neprijungia.

Usher IdentityUsher IdentityTęsiama į Acme Notes

Sveiki sugrįžę.

Prisijunkite su savo Usher Identity paskyra.

Čia pirmą kartą?

Apsaugota Usher Identity

Standartai, ne priklausomybė

Kalba protokolais, kuriuos jūsų technologijos jau supranta.

Usher Identity pirmiausia yra OpenID Connect teikėjas. Naudokite mūsų SDK, kai jums patogu, arba bet kurią OIDC biblioteką bet kuria kalba. Jei kada nors išeisite, jūsų programoms nereikės keisti, kaip jos prijungia žmones.

Atnaujinimo žetonai, sutikimas ir aprėptys – įskaičiuota.
  • OIDC Core · Discovery

    OpenID Connect

    Kiekvienai aplinkai – aptikimo dokumentas, ID žetonai ir userinfo. Tinka bet kuri sertifikuota kliento biblioteka.

  • Tik S256

    OAuth 2.1 su PKCE

    Autorizacijos kodas su PKCE kiekvienam klientui – viešam ar konfidencialiam. Jokio netiesioginio srauto, jokių slaptažodžių žetonų galiniame taške.

  • RS256 · ES256 · EdDSA

    JWKS ir raktų keitimas

    Kiekviena aplinka pasirašo savo raktais, paskelbtais jos jwks_uri. Keiskite juos neatjungdami prisijungusių žmonių.

  • RFC 7662 · RFC 7009

    Žetonų tikrinimas ir atšaukimas

    Paklauskite, ar žetonas dar galioja, arba nutraukite jį iškart. Usher Identity tikrina savo sesijas per kiekvieną užklausą, todėl nutraukta sesija baigiasi iš karto.

  • RP inicijuotas ir back-channel atsijungimas

    Atsijunkite iš savo programos arba leiskite Usher Identity pranešti kiekvienai programai, kai sesija kur nors baigiasi.

  • RFC 9449

    DPoP

    Susiekite žetonus su kliento turimu raktu, kad pavogtas žetonas vienas būtų bevertis.

  • WebAuthn

    Slaptaraktai

    Visavertė funkcija, ne priedas. Žmonės prisijungia pirštu, veidu arba saugos raktu, ir nėra ko išvilioti.

  • TOTP

    Autentifikavimo programos

    Laiku pagrįsti kodai iš bet kurios autentifikavimo programos, su atsarginiais kodais. Antrasis veiksnys gali būti pasirinktinis arba privalomas.

  • Magiškosios nuorodos

    Vienas bakstelėjimas pašto dėžutėje. Trumpalaikės, vienkartinės ir susietos su jas išsiuntusia aplinka.

  • Kodai el. paštu

    Šeši skaitmenys tiems, kurie prisijungia viename įrenginyje, o el. paštą skaito kitame.

  • Prisijungimas per socialinius tinklus

    Google, GitHub, Microsoft ir Apple. Paskyra susiejama tik tada, kai jos el. pašto adresas patvirtintas.

  • Organizacijos ir komandos

    Nariai, vaidmenys ir kvietimai įmonėms, kurios naudoja jūsų programą.

  • Netrukus

    SAML

    Bendrasis prisijungimas per jūsų klientų darbuotojų tapatybės teikėjus.

  • Netrukus

    SCIM

    Naudotojų suteikimas ir panaikinimas iš jūsų klientų katalogų.

Kaip vyksta prisijungimas

Penki žingsniai, kiekvienas – standartinis.

Tai OpenID Connect autorizacijos kodo srautas su PKCE – tas pats, kurį naudoja kiekvienas rimtas tapatybės teikėjas. Slinkite ir peržiūrėkite.

  1. 01

    Jūsų programa nusiunčia žmogų į Lobby.

    Kai kas nors pasirenka „Tęsti su Usher Identity“, jūsų programa nukreipia jį į jūsų aplinkos autorizacijos galinį tašką su PKCE iššūkiu ir būsenos reikšme, kurią vėliau patikrins.

    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

    Žmogus prisijungia savo būdu.

    Slaptaraktis, el. paštu atsiųstas kodas, magiškoji nuoroda, socialinio tinklo paskyra ar slaptažodis: Lobby siūlo tik tai, ką leidžia jūsų aplinka, ir visada nurodo, į kurią programą žmogus keliauja.

    Usher IdentityUsher IdentityTęsiama į Acme

    Sveiki sugrįžę.

    Naudoti slaptaraktį
    Atsiųsti kodą el. paštu
  3. 03

    Žmogus sutinka dalytis.

    Pirmą kartą žmonės mato, ko prašo jūsų programa (profilio, el. pašto adreso, likti prisijungus), ir sutinka vieną kartą.

    Acme norėtų:

    • Matyti jūsų vardą ir nuotrauką
    • Matyti jūsų el. pašto adresą
    • Palaikyti jus prisijungusius
    AtšauktiLeisti
  4. 04

    Usher Identity grąžina kodą.

    Naršyklė grįžta į jūsų peradresavimo URI su vienkartiniu kodu, galiojančiu penkias minutes, ir jūsų išsiųsta būsena, kurią programa patikrina.

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

    Jūsų programa iškeičia jį į žetonus.

    Jūsų serveris nusiunčia kodą ir PKCE tikrintuvą į žetonų galinį tašką. Grąžinami ID žetonas, nurodantis, kas yra žmogus, prieigos žetonas jūsų API ir atnaujinimo žetonas, kad žmogus liktų prisijungęs.

    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
    }

Izoliacija iš principo

Kiekviena aplinka – atskiras pastatas.

Jūsų produkcinė ir kūrimo aplinkos, kaip ir visų kitų klientų aplinkos, nesidalija niekuo, kas svarbu. Klaida vienoje negali skaityti kitos duomenų, pasirašyti jos vardu ar prie jos prisijungti.

Sava Postgres schema
Ne nuomininko stulpelis bendroje lentelėje, o aplinkai sukurta schema, kurioje nieko kito nėra.
Savi pasirašymo raktai
Vienos aplinkos žetonai niekada nepraeis patikrinimo kitos aplinkos raktais.
Savos užsandarintos paslaptys
Užsandarintos pačios aplinkos duomenų raktu, kuris pats yra apgaubtas pagrindiniu raktu.
Savas serveris
Išdavėjai veikia kitame domene nei Usher svetainė ir Console, su tik tam serveriui skirtais slapukais.

usheridentity.com

Svetainė, Usher Identity Console, Usher Identity paskyros

*.usherid.com

Po vieną išdavėją kiekvienai aplinkai, atskirame domene

Aplinka

Naudotojai, sesijos ir žetonai saugomi šiai aplinkai sukurtoje schemoje. Užklausos vykdomos toje schemoje, niekada bendroje lentelėje su nuomininko stulpeliu.

Nukopijuoti Acme produkcinės aplinkos užsandarintą Google kliento paslaptį į Northwind produkcinę aplinką.

Kūrėjams

Pirmasis prisijungimas – trimis būdais.

Įdiekite SDK, kai jis pasirodys, naudokite OIDC biblioteką, kuria jau pasitikite, arba pradėkite nuo aptikimo dokumento. Po visu tuo – tas pats protokolas.

app/layout.tsx · app/page.tsxPasirodys kartu su SDK
// 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 />
}

Paleiskite patys

Jūsų serveriai, jūsų raktai.

Naudokite Usher Identity kaip paslaugą arba paleiskite tą pačią platformą savo serveriuose, su savo raktais ir savo duomenų baze.

  • Docker

    Vienas Compose failas: programos, Postgres, Valkey, Caddy kraštinis serveris ir išeinančio srauto tarpinis serveris. Konteineriai veikia be naujų privilegijų ir su atimtomis galimybėmis.

  • Ubuntu

    Užtenka paprasto Ubuntu serverio. Caddy užbaigia TLS, o paslaptys perduodamos konteineriams kaip failai ir niekada neįrašomos į atvaizdus.

  • Postgres

    Postgres saugo viską, po vieną schemą kiekvienai aplinkai. Jis ir Valkey yra tinkle, iš kurio nėra kelio į internetą.

Iš Usher Identity kodo kopijos
# 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

Išsamus savarankiško diegimo vadovas jau ruošiamas. Aukščiau pateiktos komandos parodo, kaip tai atrodys.

Palydėkite savo naudotojus vidun.

Sukurkite darbo sritį ir projektą – pirmoji aplinka iškart gaus savo išdavėją, raktus ir Lobby.

Prisijunkite kartą. Būkite laukiami visur.