Tapatybė jūsų programoms pagal atviruosius standartus
Palydi jus vidun.
Viena paskyra. Visos durys.
Usher Identity prijungia žmones prie jūsų programų naudodama OpenID Connect ir OAuth 2.1: slaptaraktai, kodai, prisijungimas per socialinius tinklus ir organizacijos, o kiekviena aplinka atskirta nuo visų kitų.
Pradėti nemokama. Veikia ir jūsų pačių serveriuose.
- OpenID Connect
- OAuth 2.1
- PKCE
- WebAuthn
- JWKS
- DPoP
- TOTP
Lobby
Prisijungimo puslapis, kuris pasitinka, o ne tardo.
Lobby – tai prisijungimo puslapis, kurį Usher Identity talpina jūsų programai. Jis visada nurodo, kur žmogus keliauja, ir atrodo vienodai, kad ir kuri programa jį atsiuntė, todėl žmonės išmoksta juo pasitikėti.
- Kiekvieną kartą nurodo produktą, į kurį keliaujate.
- Slaptaraktai, el. paštu atsiųsti kodai ir magiškosios nuorodos, o slaptažodžiai – tik jei jų norite.
- Tas pats ramus puslapis, šviesus ar tamsus, kiekviename produkte.
Tai veikianti Lobby kopija. Ji veikia šiame puslapyje, nieko nesiunčia ir nieko neprijungia.
Standartai, ne priklausomybė
Kalba protokolais, kuriuos jūsų technologijos jau supranta.
Usher Identity pirmiausia yra OpenID Connect teikėjas. Naudokite mūsų SDK, kai jums patogu, arba bet kurią OIDC biblioteką bet kuria kalba. Jei kada nors išeisite, jūsų programoms nereikės keisti, kaip jos prijungia žmones.
- OIDC Core · Discovery
OpenID Connect
Kiekvienai aplinkai – aptikimo dokumentas, ID žetonai ir userinfo. Tinka bet kuri sertifikuota kliento biblioteka.
- Tik S256
OAuth 2.1 su PKCE
Autorizacijos kodas su PKCE kiekvienam klientui – viešam ar konfidencialiam. Jokio netiesioginio srauto, jokių slaptažodžių žetonų galiniame taške.
- RS256 · ES256 · EdDSA
JWKS ir raktų keitimas
Kiekviena aplinka pasirašo savo raktais, paskelbtais jos jwks_uri. Keiskite juos neatjungdami prisijungusių žmonių.
- RFC 7662 · RFC 7009
Žetonų tikrinimas ir atšaukimas
Paklauskite, ar žetonas dar galioja, arba nutraukite jį iškart. Usher Identity tikrina savo sesijas per kiekvieną užklausą, todėl nutraukta sesija baigiasi iš karto.
RP inicijuotas ir back-channel atsijungimas
Atsijunkite iš savo programos arba leiskite Usher Identity pranešti kiekvienai programai, kai sesija kur nors baigiasi.
- RFC 9449
DPoP
Susiekite žetonus su kliento turimu raktu, kad pavogtas žetonas vienas būtų bevertis.
- WebAuthn
Slaptaraktai
Visavertė funkcija, ne priedas. Žmonės prisijungia pirštu, veidu arba saugos raktu, ir nėra ko išvilioti.
- TOTP
Autentifikavimo programos
Laiku pagrįsti kodai iš bet kurios autentifikavimo programos, su atsarginiais kodais. Antrasis veiksnys gali būti pasirinktinis arba privalomas.
Magiškosios nuorodos
Vienas bakstelėjimas pašto dėžutėje. Trumpalaikės, vienkartinės ir susietos su jas išsiuntusia aplinka.
Kodai el. paštu
Šeši skaitmenys tiems, kurie prisijungia viename įrenginyje, o el. paštą skaito kitame.
Prisijungimas per socialinius tinklus
Google, GitHub, Microsoft ir Apple. Paskyra susiejama tik tada, kai jos el. pašto adresas patvirtintas.
Organizacijos ir komandos
Nariai, vaidmenys ir kvietimai įmonėms, kurios naudoja jūsų programą.
- Netrukus
SAML
Bendrasis prisijungimas per jūsų klientų darbuotojų tapatybės teikėjus.
- Netrukus
SCIM
Naudotojų suteikimas ir panaikinimas iš jūsų klientų katalogų.
Kaip vyksta prisijungimas
Penki žingsniai, kiekvienas – standartinis.
Tai OpenID Connect autorizacijos kodo srautas su PKCE – tas pats, kurį naudoja kiekvienas rimtas tapatybės teikėjas. Slinkite ir peržiūrėkite.
- 01
Jūsų programa nusiunčia žmogų į Lobby.
Kai kas nors pasirenka „Tęsti su Usher Identity“, jūsų programa nukreipia jį į jūsų aplinkos autorizacijos galinį tašką su PKCE iššūkiu ir būsenos reikšme, kurią vėliau patikrins.
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
Žmogus prisijungia savo būdu.
Slaptaraktis, el. paštu atsiųstas kodas, magiškoji nuoroda, socialinio tinklo paskyra ar slaptažodis: Lobby siūlo tik tai, ką leidžia jūsų aplinka, ir visada nurodo, į kurią programą žmogus keliauja.
Usher IdentityUsher IdentityTęsiama į AcmeSveiki sugrįžę.
Naudoti slaptaraktįAtsiųsti kodą el. paštu - 03
Žmogus sutinka dalytis.
Pirmą kartą žmonės mato, ko prašo jūsų programa (profilio, el. pašto adreso, likti prisijungus), ir sutinka vieną kartą.
Acme norėtų:
- Matyti jūsų vardą ir nuotrauką
- Matyti jūsų el. pašto adresą
- Palaikyti jus prisijungusius
AtšauktiLeisti - 04
Usher Identity grąžina kodą.
Naršyklė grįžta į jūsų peradresavimo URI su vienkartiniu kodu, galiojančiu penkias minutes, ir jūsų išsiųsta būsena, kurią programa patikrina.
302 Found Location: https://app.acme.example/callback ?code=SplxlOBeZQQYbYS6WxSbIA &state=k3Jx…
- 05
Jūsų programa iškeičia jį į žetonus.
Jūsų serveris nusiunčia kodą ir PKCE tikrintuvą į žetonų galinį tašką. Grąžinami ID žetonas, nurodantis, kas yra žmogus, prieigos žetonas jūsų API ir atnaujinimo žetonas, kad žmogus liktų prisijungęs.
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 }
Izoliacija iš principo
Kiekviena aplinka – atskiras pastatas.
Jūsų produkcinė ir kūrimo aplinkos, kaip ir visų kitų klientų aplinkos, nesidalija niekuo, kas svarbu. Klaida vienoje negali skaityti kitos duomenų, pasirašyti jos vardu ar prie jos prisijungti.
- Sava Postgres schema
- Ne nuomininko stulpelis bendroje lentelėje, o aplinkai sukurta schema, kurioje nieko kito nėra.
- Savi pasirašymo raktai
- Vienos aplinkos žetonai niekada nepraeis patikrinimo kitos aplinkos raktais.
- Savos užsandarintos paslaptys
- Užsandarintos pačios aplinkos duomenų raktu, kuris pats yra apgaubtas pagrindiniu raktu.
- Savas serveris
- Išdavėjai veikia kitame domene nei Usher svetainė ir Console, su tik tam serveriui skirtais slapukais.
usheridentity.com
Svetainė, Usher Identity Console, Usher Identity paskyros
*.usherid.com
Po vieną išdavėją kiekvienai aplinkai, atskirame domene
Naudotojai, sesijos ir žetonai saugomi šiai aplinkai sukurtoje schemoje. Užklausos vykdomos toje schemoje, niekada bendroje lentelėje su nuomininko stulpeliu.
Nukopijuoti Acme produkcinės aplinkos užsandarintą Google kliento paslaptį į Northwind produkcinę aplinką.
Kūrėjams
Pirmasis prisijungimas – trimis būdais.
Įdiekite SDK, kai jis pasirodys, naudokite OIDC biblioteką, kuria jau pasitikite, arba pradėkite nuo aptikimo dokumento. Po visu tuo – tas pats protokolas.
// 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 />
}Paleiskite patys
Jūsų serveriai, jūsų raktai.
Naudokite Usher Identity kaip paslaugą arba paleiskite tą pačią platformą savo serveriuose, su savo raktais ir savo duomenų baze.
Docker
Vienas Compose failas: programos, Postgres, Valkey, Caddy kraštinis serveris ir išeinančio srauto tarpinis serveris. Konteineriai veikia be naujų privilegijų ir su atimtomis galimybėmis.
Ubuntu
Užtenka paprasto Ubuntu serverio. Caddy užbaigia TLS, o paslaptys perduodamos konteineriams kaip failai ir niekada neįrašomos į atvaizdus.
Postgres
Postgres saugo viską, po vieną schemą kiekvienai aplinkai. Jis ir Valkey yra tinkle, iš kurio nėra kelio į internetą.
# 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 migrationsIšsamus savarankiško diegimo vadovas jau ruošiamas. Aukščiau pateiktos komandos parodo, kaip tai atrodys.
Palydėkite savo naudotojus vidun.
Sukurkite darbo sritį ir projektą – pirmoji aplinka iškart gaus savo išdavėją, raktus ir Lobby.
Prisijunkite kartą. Būkite laukiami visur.