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.
- OpenID Connect
- OAuth 2.1
- PKCE
- WebAuthn
- JWKS
- DPoP
- TOTP
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.
- 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.
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.
- 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.
- 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
- 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 AcmeDobro došli natrag.
Upotrijebi pristupni ključPošalji mi kôd e-poštom - 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 - 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…
- 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
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
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.
# 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 migrationsPotpuni 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.