Přeskočit na obsah

Identita pro vaše aplikace, na otevřených standardech

Uvede vás dál.

Jeden účet. Všechny dveře.

Usher Identity přihlašuje lidi do vašich aplikací přes OpenID Connect a OAuth 2.1: přístupové klíče, kódy, sociální sítě i organizace, a každé prostředí je přitom oddělené od všech ostatních.

Začátek je zdarma. Běží i na vašich vlastních serverech.

Lobby

Přihlašovací stránka, která vítá, ne vyslýchá.

Lobby je přihlašovací stránka, kterou Usher Identity hostuje pro vaši aplikaci. Vždy říká, kam člověk míří, a vypadá stejně, ať ho poslala kterákoli aplikace, takže se jí lidé naučí důvěřovat.

Pokračujete do aplikace
Motiv
  • Pokaždé uvede produkt, do kterého míříte.
  • Přístupové klíče, kódy a magické odkazy e-mailem a hesla, jen pokud o ně stojíte.
  • Stejně klidná stránka, světlá nebo tmavá, v každém produktu.

Toto je funkční kopie Lobby. Běží přímo v této stránce, nic neodesílá a nikoho nepřihlašuje.

Usher IdentityUsher IdentityPokračujete do aplikace Acme Notes

Vítejte zpět.

Přihlaste se svým účtem Usher Identity.

Jste tu poprvé?

Zabezpečeno službou Usher Identity

Standardy, ne závislost

Mluví protokoly, které váš stack už zná.

Usher Identity je v první řadě poskytovatel OpenID Connect. Použijte naši sadu SDK, když se vám hodí, nebo jakoukoli knihovnu OIDC v jakémkoli jazyce. A kdybyste od nás někdy odešli, vaše aplikace nemusí měnit způsob, jakým lidi přihlašují.

Obnovovací tokeny, souhlas a rozsahy jsou součástí.
  • OIDC Core · Discovery

    OpenID Connect

    Dokument discovery pro každé prostředí, ID tokeny a userinfo. Funguje s ním každá certifikovaná klientská knihovna.

  • Pouze S256

    OAuth 2.1 s PKCE

    Autorizační kód s PKCE pro každého klienta, veřejného i důvěrného. Žádný implicitní tok, žádná hesla v koncovém bodu tokenu.

  • RS256 · ES256 · EdDSA

    JWKS a rotace klíčů

    Každé prostředí podepisuje vlastními klíči, zveřejněnými na jeho jwks_uri. Můžete je vyměnit, aniž byste odhlásili přihlášené lidi.

  • RFC 7662 · RFC 7009

    Introspekce a odvolání

    Zjistěte, jestli token ještě platí, nebo ho hned ukončete. Usher Identity při každém požadavku kontroluje vlastní relace, takže ukončení platí okamžitě.

  • Odhlášení iniciované aplikací a přes back-channel

    Odhlaste lidi ze své aplikace, nebo nechte Usher Identity dát vědět všem aplikacím, když relace kdekoli skončí.

  • RFC 9449

    DPoP

    Navažte tokeny na klíč, který drží klient, a ukradený token sám o sobě k ničemu nebude.

  • WebAuthn

    Přístupové klíče

    Plnohodnotná součást, ne doplněk. Lidé se přihlásí otiskem prstu, obličejem nebo bezpečnostním klíčem a není tu nic, co by šlo vylákat phishingem.

  • TOTP

    Ověřovací aplikace

    Časově omezené kódy z jakékoli ověřovací aplikace, se záložními kódy. Druhý faktor může být volitelný, nebo povinný.

  • Magické odkazy

    Jedno klepnutí ve schránce. Krátká platnost, jedno použití a vazba na prostředí, které odkaz poslalo.

  • Kódy e-mailem

    Šest číslic pro ty, kdo se přihlašují na jednom zařízení a e-maily čtou na jiném.

  • Přihlášení přes sociální sítě

    Google, GitHub, Microsoft a Apple. Účet se propojí, jen když je jeho e-mail ověřený.

  • Organizace a týmy

    Členové, role a pozvánky pro firmy, které vaši aplikaci používají.

  • Již brzy

    SAML

    Jednotné přihlašování přes firemní poskytovatele identity vašich zákazníků.

  • Již brzy

    SCIM

    Zřizování a rušení účtů z adresářů vašich zákazníků.

Jak probíhá přihlášení

Pět kroků a všechny standardní.

Je to tok autorizačního kódu s PKCE podle OpenID Connect, stejný, jakým mluví každý seriózní poskytovatel identity. Projděte si ho.

  1. 01

    Vaše aplikace je pošle do Lobby.

    Když někdo zvolí Pokračovat přes Usher Identity, vaše aplikace ho přesměruje na autorizační koncový bod vašeho prostředí, s výzvou PKCE a hodnotou state, kterou později zkontroluje.

    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

    Přihlásí se, jak jim to vyhovuje.

    Přístupový klíč, kód e-mailem, magický odkaz, účet sociální sítě nebo heslo: Lobby nabídne jen to, co vaše prostředí povoluje, a vždy řekne, do které aplikace člověk míří.

    Usher IdentityUsher IdentityPokračujete do aplikace Acme

    Vítejte zpět.

    Použít přístupový klíč
    Poslat kód e-mailem
  3. 03

    Souhlasí se sdílením.

    Poprvé lidé uvidí, o co vaše aplikace žádá (profil, e-mail, trvalé přihlášení), a souhlasí jen jednou.

    Aplikace Acme chce:

    • Vidět vaše jméno a fotku
    • Vidět vaši e-mailovou adresu
    • Udržet vás přihlášené
    ZrušitPovolit
  4. 04

    Usher Identity vrátí kód.

    Prohlížeč se vrátí na vaše URI přesměrování s jednorázovým kódem platným pět minut a s hodnotou state, kterou jste poslali a kterou vaše aplikace zkontroluje.

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

    Vaše aplikace ho vymění za tokeny.

    Váš server pošle kód a ověřovač PKCE na koncový bod tokenu. Zpátky dostane ID token, který říká, kdo člověk je, přístupový token pro vaše API a obnovovací token, aby zůstal přihlášený.

    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
    }

Izolace už v návrhu

Každé prostředí je samostatná budova.

Vaše produkční a vývojová prostředí, stejně jako prostředí všech ostatních zákazníků, nesdílejí nic podstatného. Chyba v jednom nemůže číst data druhého, podepisovat za něj ani se do něj přihlásit.

Vlastní schéma Postgres
Žádný sloupec s tenantem ve sdílené tabulce: schéma vytvořené pro dané prostředí a nic jiného v něm.
Vlastní podpisové klíče
Token z jednoho prostředí nikdy neprojde ověřením proti klíčům jiného.
Vlastní zapečetěné tajné údaje
Zapečetěné vlastním datovým klíčem prostředí, který je sám zabalený hlavním klíčem.
Vlastní hostitel
Vydavatelé sídlí na jiné doméně než web Usher a Console, s cookies platnými jen pro jednoho hostitele.

usheridentity.com

Web, Usher Identity Console, účty Usher Identity

*.usherid.com

Jeden vydavatel na prostředí, na samostatné doméně

Prostředí

Uživatelé, relace a tokeny jsou ve schématu vytvořeném pro toto prostředí. Dotazy běží proti tomuto schématu, nikdy proti sdílené tabulce se sloupcem tenantu.

Zkopírujte zapečetěný tajný klíč klienta Google z produkčního prostředí projektu Acme do produkčního prostředí projektu Northwind.

Pro vývojáře

Vaše první přihlášení, třemi způsoby.

Vložte sadu SDK, až vyjde, použijte knihovnu OIDC, které už důvěřujete, nebo začněte čtením dokumentu discovery. Pod tím vším je pořád stejný protokol.

app/layout.tsx · app/page.tsxPřijde se sadou 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 />
}

Provoz na vlastních serverech

Vaše servery, vaše klíče.

Používejte Usher Identity jako službu, nebo provozujte stejnou platformu na vlastních serverech, s vlastními klíči a vlastní databází.

  • Docker

    Jeden soubor Compose: aplikace, Postgres, Valkey, okrajový server Caddy a odchozí proxy. Kontejnery nemohou získat nová oprávnění a mají odebrané linuxové capabilities.

  • Ubuntu

    Stačí obyčejný server s Ubuntu. Caddy ukončuje TLS a tajné údaje jsou soubory předané kontejnerům, nikdy zapečené do obrazů.

  • Postgres

    Postgres drží všechno, jedno schéma na prostředí. On i Valkey jsou v síti bez cesty do internetu.

Z naklonovaného repozitáře 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 k provozu na vlastních serverech se připravuje. Příkazy výše ukazují, jak bude vypadat.

Uveďte své uživatele dál.

Vytvořte pracovní prostor a projekt a vaše první prostředí dostane vlastního vydavatele, klíče i Lobby.

Přihlaste se jednou. Vítejte všude.