Preskoči na sadržaj

Identitet za vaše aplikacije, na otvorenim standardima

Uvodi vas unutra.

Jedan račun. Sva vrata.

Usher Identity prijavljuje ljude u vaše aplikacije putem protokola OpenID Connect i OAuth 2.1: pristupni ključevi, kôdovi, prijava putem društvenih mreža i organizacije, a svako je okruženje odvojeno od svih ostalih.

Besplatno za početak. Radi i na vašim vlastitim poslužiteljima.

Lobby

Stranica za prijavu koja dočekuje, a ne ispituje.

Lobby je stranica za prijavu koju Usher Identity hostira za vašu aplikaciju. Uvijek kaže kamo osoba ide i izgleda isto koja god ju je aplikacija poslala, pa joj ljudi nauče vjerovati.

Nastavljate u aplikaciju
Tema
  • Svaki put navodi proizvod u koji idete.
  • Pristupni ključevi, kôdovi i čarobne poveznice e-poštom, a lozinke samo ako ih želite.
  • Ista mirna stranica, svijetla ili tamna, u svakom proizvodu.

Ovo je funkcionalna kopija stranice Lobby. Radi unutar ove stranice, ništa ne šalje i nikoga ne prijavljuje.

Usher IdentityUsher IdentityNastavljate u aplikaciju Acme Notes

Dobro došli natrag.

Prijavite se svojim Usher Identity računom.

Prvi put ste ovdje?

Zaštitu pruža Usher Identity

Standardi umjesto vezanosti

Govori protokole koje vaš sustav već poznaje.

Usher Identity je prije svega pružatelj usluge OpenID Connect. Koristite naš SDK kad vam odgovara ili bilo koju OIDC biblioteku u bilo kojem jeziku. Ako ikad odete, vaše aplikacije ne moraju mijenjati način na koji prijavljuju ljude.

Tokeni za osvježavanje, pristanak i opsezi su uključeni.
  • OIDC Core · Discovery

    OpenID Connect

    Dokument za otkrivanje za svako okruženje, ID tokeni i userinfo. Radi svaka certificirana klijentska biblioteka.

  • Samo S256

    OAuth 2.1 uz PKCE

    Autorizacijski kôd uz PKCE za svakog klijenta, javnog ili povjerljivog. Bez implicitnog toka i bez lozinki na krajnjoj točki za tokene.

  • RS256 · ES256 · EdDSA

    JWKS i rotacija ključeva

    Svako okruženje potpisuje vlastitim ključevima, objavljenima na njegovoj adresi jwks_uri. Rotirajte ih, a prijavljeni ostaju prijavljeni.

  • RFC 7662 · RFC 7009

    Introspekcija i opoziv

    Provjerite vrijedi li token još ili ga odmah poništite. Usher Identity pri svakom zahtjevu provjerava vlastite sesije, pa završetak sesije stupa na snagu odmah.

  • Odjava koju pokreće RP i odjava putem pozadinskog kanala

    Odjavite ljude iz svoje aplikacije ili neka Usher Identity obavijesti svaku aplikaciju kad sesija bilo gdje završi.

  • RFC 9449

    DPoP

    Vežite tokene uz ključ koji drži klijent, pa ukradeni token sam po sebi ne vrijedi ništa.

  • WebAuthn

    Pristupni ključevi

    Ravnopravna značajka, a ne dodatak. Ljudi se prijavljuju otiskom prsta, licem ili sigurnosnim ključem i nema ničega što bi lažna stranica mogla ukrasti.

  • TOTP

    Aplikacije za provjeru autentičnosti

    Vremenski kôdovi iz bilo koje aplikacije za provjeru autentičnosti, s rezervnim kôdovima. Drugi faktor može biti neobavezan ili obavezan.

  • Čarobne poveznice

    Jedan dodir iz pristigle pošte. Kratkotrajne, jednokratne i vezane uz okruženje koje ih je poslalo.

  • Kôdovi e-poštom

    Šest znamenki, za ljude koji se prijavljuju na jednom uređaju, a e-poštu čitaju na drugom.

  • Prijava putem društvenih mreža

    Google, GitHub, Microsoft i Apple. Račun se povezuje samo kad je njegova adresa e-pošte potvrđena.

  • Organizacije i timovi

    Članovi, uloge i pozivnice za tvrtke koje koriste vašu aplikaciju.

  • Uskoro

    SAML

    Jedinstvena prijava (SSO) putem pružatelja identiteta zaposlenika vaših kupaca.

  • Uskoro

    SCIM

    Automatsko dodavanje i uklanjanje korisnika iz imenika vaših kupaca.

Kako funkcionira prijava

Pet koraka, svaki od njih standardan.

Ovo je tok autorizacijskog kôda uz PKCE iz specifikacije OpenID Connect, isti tok koji govori svaki ozbiljan pružatelj identiteta. Pomaknite se prema dolje i pratite ga.

  1. 01

    Vaša aplikacija šalje ih na stranicu Lobby.

    Kad netko odabere „Nastavi uz Usher Identity”, vaša ga aplikacija preusmjerava na autorizacijsku krajnju točku vašeg okruženja, s PKCE izazovom i vrijednošću state koju će kasnije provjeriti.

    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

    Prijavljuju se, na svoj način.

    Pristupni ključ, kôd poslan e-poštom, čarobna poveznica, račun na društvenoj mreži ili lozinka: Lobby nudi samo ono što vaše okruženje dopušta i uvijek kaže u koju aplikaciju idu.

    Usher IdentityUsher IdentityNastavljate u aplikaciju Acme

    Dobro došli natrag.

    Upotrijebi pristupni ključ
    Pošalji mi kôd e-poštom
  3. 03

    Pristaju na dijeljenje.

    Prvi put ljudi vide što vaša aplikacija traži (njihov profil, adresu e-pošte, ostanak u prijavi) i pristanu jednom.

    Aplikacija Acme želi:

    • Vidjeti vaše ime i sliku
    • Vidjeti vašu adresu e-pošte
    • Zadržati vas prijavljenima
    OdustaniDopusti
  4. 04

    Usher Identity vraća kôd.

    Preglednik se vraća na vaš URI za preusmjeravanje s jednokratnim kôdom koji vrijedi pet minuta i vrijednošću state koju ste poslali, a koju vaša aplikacija provjerava.

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

    Vaša ga aplikacija mijenja za tokene.

    Vaš poslužitelj šalje kôd i PKCE verifikator krajnjoj točki za tokene. Natrag stižu ID token koji kaže tko su, pristupni token za vaš API i token za osvježavanje kako bi ostali 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 od samog početka

Svako je okruženje zasebna zgrada.

Vaša produkcijska i razvojna okruženja, kao i okruženja svih drugih kupaca, ne dijele ništa bitno. Pogreška u jednom ne može čitati iz drugoga, potpisivati umjesto njega niti se u njega prijaviti.

Vlastita Postgres shema
Ne stupac zakupca u zajedničkoj tablici, nego shema napravljena za to okruženje, bez ičega drugog u njoj.
Vlastiti ključevi za potpisivanje
Tokeni iz jednog okruženja nikad se ne mogu provjeriti ključevima drugoga.
Vlastite zapečaćene tajne
Zapečaćene vlastitim podatkovnim ključem okruženja, koji je i sam omotan glavnim ključem.
Vlastiti host
Izdavatelji se nalaze na domeni odvojenoj od web-stranice platforme Usher i sučelja Console, s kolačićima vezanima samo uz host.

usheridentity.com

Web-stranica, Usher Identity Console, Usher Identity računi

*.usherid.com

Jedan izdavatelj po okruženju, na zasebnoj domeni

Okruženje

Korisnici, sesije i tokeni nalaze se u shemi napravljenoj za ovo okruženje. Upiti se izvršavaju nad tom shemom, nikad nad zajedničkom tablicom sa stupcem zakupca.

Kopirajte zapečaćenu tajnu klijenta Google iz produkcijskog okruženja projekta Acme u produkcijsko okruženje projekta Northwind.

Za razvojne programere

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

Ugradite SDK kad stigne, koristite OIDC biblioteku kojoj već vjerujete ili počnite čitanjem dokumenta za otkrivanje. U pozadini je posvuda isti protokol.

app/layout.tsx · app/page.tsxStiže uz 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 />
}

Pokrenite sami

Vaši poslužitelji, vaši ključevi.

Koristite Usher Identity kao uslugu ili pokrenite istu platformu na vlastitim poslužiteljima, s vlastitim ključevima i vlastitom bazom podataka.

  • Docker

    Jedna Compose datoteka: aplikacije, Postgres, Valkey, rubni sloj Caddy i izlazni proxy. Spremnici rade bez dodatnih ovlasti i s odbačenim mogućnostima (capabilities).

  • Ubuntu

    Dovoljan je običan Ubuntu poslužitelj. Caddy obrađuje TLS, a tajne su datoteke predane spremnicima, nikad ugrađene u slike.

  • Postgres

    Postgres čuva sve, po jednu shemu za svako okruženje. On i Valkey nalaze se na mreži bez rute prema internetu.

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

Potpuni vodič za samostalno hostiranje je na putu. Naredbe iznad pokazuju kako će otprilike izgledati.

Uvedite svoje korisnike unutra.

Izradite radni prostor i projekt, a vaše prvo okruženje dolazi s vlastitim izdavateljem, ključevima i stranicom Lobby.

Prijavite se jednom. Dobro došli posvuda.