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.
- OpenID Connect
- OAuth 2.1
- PKCE
- WebAuthn
- JWKS
- DPoP
- TOTP
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.
- 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.
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í.
- 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.
- 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
- 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 AcmeVítejte zpět.
Použít přístupový klíčPoslat kód e-mailem - 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 - 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…
- 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ě
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
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.
# 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.