Preskočiť na obsah

Identita pre vaše aplikácie, na otvorených štandardoch

Uvedie vás dnu.

Jeden účet. Všetky dvere.

Usher Identity prihlasuje ľudí do vašich aplikácií cez OpenID Connect a OAuth 2.1: prístupové kľúče, kódy, sociálne siete aj organizácie, pričom každé prostredie je oddelené od všetkých ostatných.

Na začiatok zadarmo. Beží aj na vašich vlastných serveroch.

Lobby

Prihlasovacia stránka, ktorá víta, nie vypočúva.

Lobby je prihlasovacia stránka, ktorú Usher Identity hostí pre vašu aplikáciu. Vždy uvedie, kam človek ide, a vyzerá rovnako bez ohľadu na to, ktorá aplikácia ho poslala, takže sa mu ľudia naučia dôverovať.

Pokračujete do aplikácie
Motív
  • Zakaždým uvedie produkt, do ktorého idete.
  • Prístupové kľúče, kódy e-mailom a magické odkazy, heslá len vtedy, ak o ne stojíte.
  • Tá istá pokojná stránka, svetlá aj tmavá, v každom produkte.

Toto je funkčná kópia Lobby. Beží priamo na tejto stránke, nič neodosiela a nikoho neprihlási.

Usher IdentityUsher IdentityPokračujete do aplikácie Acme Notes

Vitajte späť.

Prihláste sa svojím účtom Usher Identity.

Prvýkrát tu?

Zabezpečuje Usher Identity

Štandardy, nie závislosť

Hovorí protokolmi, ktoré vaše technológie už poznajú.

Usher Identity je predovšetkým poskytovateľ OpenID Connect. Použite naše SDK, keď vám vyhovuje, alebo akúkoľvek knižnicu OIDC v akomkoľvek jazyku. Ak raz odídete, vaše aplikácie nemusia meniť spôsob, akým ľudí prihlasujú.

Obnovovacie tokeny, súhlas a rozsahy sú súčasťou.
  • OIDC Core · Discovery

    OpenID Connect

    Dokument zisťovania pre každé prostredie, tokeny ID a userinfo. Funguje akákoľvek certifikovaná klientska knižnica.

  • len S256

    OAuth 2.1 s PKCE

    Autorizačný kód s PKCE pre každého klienta, verejného aj dôverného. Žiadny implicitný tok, žiadne heslá na koncovom bode tokenu.

  • RS256 · ES256 · EdDSA

    JWKS a rotácia kľúčov

    Každé prostredie podpisuje vlastnými kľúčmi zverejnenými na jeho jwks_uri. Vymieňajte ich bez výpadku pre prihlásených ľudí.

  • RFC 7662 · RFC 7009

    Introspekcia a odvolanie

    Zistite, či je token stále platný, alebo ho hneď ukončite. Usher Identity pri každej požiadavke kontroluje vlastné relácie, takže ukončenie relácie platí okamžite.

  • Odhlásenie iniciované RP a cez zadný kanál

    Odhláste ľudí zo svojej aplikácie alebo nechajte Usher Identity dať vedieť každej aplikácii, keď sa niekde relácia skončí.

  • RFC 9449

    DPoP

    Naviažte tokeny na kľúč, ktorý má klient, aby bol ukradnutý token sám osebe na nič.

  • WebAuthn

    Prístupové kľúče

    Plnohodnotne, nie ako doplnok. Ľudia sa prihlasujú odtlačkom prsta, tvárou alebo bezpečnostným kľúčom a phishingom nie je čo vylákať.

  • TOTP

    Overovacie aplikácie

    Časové kódy z akejkoľvek overovacej aplikácie so záložnými kódmi. Druhý faktor môže byť voliteľný alebo povinný.

  • Magické odkazy

    Jedno ťuknutie v doručenej pošte. Platia krátko, len raz a sú viazané na prostredie, ktoré ich poslalo.

  • Kódy e-mailom

    Šesť číslic pre ľudí, ktorí sa prihlasujú na jednom zariadení a e-maily čítajú na inom.

  • Prihlásenie cez sociálne siete

    Google, GitHub, Microsoft a Apple. Účet sa prepojí, len keď je jeho e-mail overený.

  • Organizácie a tímy

    Členovia, roly a pozvánky pre firmy, ktoré používajú vašu aplikáciu.

  • Už čoskoro

    SAML

    Jednotné prihlásenie cez firemných poskytovateľov identity vašich zákazníkov.

  • Už čoskoro

    SCIM

    Zriaďovanie a rušenie účtov z adresárov vašich zákazníkov.

Ako prebieha prihlásenie

Päť krokov, každý z nich štandardný.

Toto je tok s autorizačným kódom a PKCE z OpenID Connect, ten istý, ktorým hovorí každý seriózny poskytovateľ identity. Prejdite si ho posúvaním.

  1. 01

    Vaša aplikácia pošle človeka do Lobby.

    Keď niekto zvolí Pokračovať cez Usher Identity, vaša aplikácia ho presmeruje na autorizačný koncový bod vášho prostredia s výzvou PKCE a hodnotou state, ktorú neskôr skontroluje.

    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

    Prihlási sa tak, ako mu to vyhovuje.

    Prístupový kľúč, kód poslaný e-mailom, magický odkaz, účet sociálnej siete alebo heslo: Lobby ponúkne len to, čo vaše prostredie povoľuje, a vždy uvedie, do ktorej aplikácie človek ide.

    Usher IdentityUsher IdentityPokračujete do aplikácie Acme

    Vitajte späť.

    Použiť prístupový kľúč
    Poslať kód e-mailom
  3. 03

    Súhlasí so zdieľaním.

    Pri prvom prihlásení ľudia uvidia, o čo vaša aplikácia žiada (profil, e-mail, trvalé prihlásenie), a súhlasia raz.

    Aplikácia Acme chce:

    • Vidieť vaše meno a fotku
    • Vidieť vašu e-mailovú adresu
    • Zachovať vaše prihlásenie
    ZrušiťPovoliť
  4. 04

    Usher Identity vráti kód.

    Prehliadač sa vráti na vaše URI presmerovania s jednorazovým kódom platným päť minút a s hodnotou state, ktorú ste poslali a ktorú vaša aplikácia skontroluje.

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

    Vaša aplikácia ho vymení za tokeny.

    Váš server pošle kód a overovač PKCE na koncový bod tokenu. Späť dostane token ID, ktorý hovorí, kto človek je, prístupový token pre vaše API a obnovovací token na trvalé prihlásenie.

    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
    }

Izolácia už v návrhu

Každé prostredie je samostatná budova.

Vaše produkčné a vývojové prostredia ani prostredia ostatných zákazníkov nezdieľajú nič podstatné. Chyba v jednom nemôže čítať z iného, podpisovať zaň ani sa doň prihlásiť.

Vlastná schéma Postgres
Žiadny stĺpec tenanta v zdieľanej tabuľke, ale schéma vytvorená pre dané prostredie a nič iné v nej.
Vlastné podpisové kľúče
Tokeny z jedného prostredia nikdy neprejdú overením kľúčmi iného prostredia.
Vlastné zapečatené tajné údaje
Zapečatené vlastným dátovým kľúčom prostredia, ktorý je zase zabalený hlavným kľúčom.
Vlastný hostiteľ
Vydavatelia sídlia na inej doméne než web a Console služby Usher, so súbormi cookie len pre daného hostiteľa.

usheridentity.com

Web, Usher Identity Console, účty Usher Identity

*.usherid.com

Jeden vydavateľ na každé prostredie, na samostatnej doméne

Prostredie

Používatelia, relácie a tokeny sú v schéme vytvorenej pre toto prostredie. Dopyty bežia nad touto schémou, nikdy nad zdieľanou tabuľkou so stĺpcom tenanta.

Skopírovať zapečatený tajný kód klienta Google z produkčného prostredia projektu Acme do produkčného prostredia projektu Northwind.

Pre vývojárov

Vaše prvé prihlásenie, tromi spôsobmi.

Keď bude SDK k dispozícii, jednoducho ho pridajte, použite knižnicu OIDC, ktorej už dôverujete, alebo začnite dokumentom zisťovania. Pod tým všetkým je ten istý protokol.

app/layout.tsx · app/page.tsxPríde spolu s 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 />
}

Prevádzka na vlastných serveroch

Vaše servery, vaše kľúče.

Používajte Usher Identity ako službu alebo prevádzkujte tú istú platformu na vlastných serveroch, s vlastnými kľúčmi a vlastnou databázou.

  • Docker

    Jeden súbor Compose: aplikácie, Postgres, Valkey, okrajový server Caddy a výstupný proxy server. Kontajnery bežia bez možnosti získať nové oprávnenia a s odobranými capabilities.

  • Ubuntu

    Stačí obyčajný server s Ubuntu. Caddy ukončuje TLS a tajné údaje sú súbory odovzdané kontajnerom, nikdy nie zabudované do obrazov.

  • Postgres

    Postgres uchováva všetko, jednu schému na každé prostredie. Postgres aj Valkey sú v sieti bez cesty na internet.

Z naklonovaného repozitára 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

Úplný návod na prevádzku na vlastných serveroch je na ceste. Príkazy vyššie naznačujú, ako bude vyzerať.

Uveďte svojich používateľov dnu.

Vytvorte pracovný priestor a projekt a vaše prvé prostredie dostane vlastného vydavateľa, kľúče a Lobby.

Prihláste sa raz. Všade vás privítajú.