Identiteetti sovelluksillesi avointen standardien pohjalta
Saattaa sinut sisään.
Yksi tili. Kaikki ovet.
Usher Identity kirjaa ihmiset sovelluksiisi OpenID Connectilla ja OAuth 2.1:llä: pääsyavaimet, koodit, kirjautuminen sometilillä ja organisaatiot, ja jokainen ympäristö pidetään erillään kaikista muista.
Aloittaminen on maksutonta. Toimii myös omilla palvelimillasi.
- OpenID Connect
- OAuth 2.1
- PKCE
- WebAuthn
- JWKS
- DPoP
- TOTP
Lobby
Kirjautumissivu, joka toivottaa tervetulleeksi eikä kuulustele.
Lobby on kirjautumissivu, jota Usher Identity ylläpitää sovelluksellesi. Se kertoo aina, minne ihminen on menossa, ja näyttää samalta, mikä sovellus hänet sinne lähettikin, joten ihmiset oppivat luottamaan siihen.
- Nimeää joka kerta tuotteen, johon olet menossa.
- Pääsyavaimet, sähköpostikoodit ja taikalinkit, salasanat vain, jos haluat.
- Sama rauhallinen sivu, vaaleana tai tummana, jokaisessa tuotteessa.
Tämä on toimiva kopio Lobbysta. Se toimii tällä sivulla, ei lähetä mitään eikä kirjaa ketään sisään.
Standardeja, ei lukkiutumista
Puhuu protokollia, jotka sovelluspinosi jo osaa.
Usher Identity on ennen kaikkea OpenID Connect -palveluntarjoaja. Käytä SDK:tamme, kun se sopii sinulle, tai mitä tahansa OIDC-kirjastoa millä tahansa kielellä. Jos joskus lähdet, sovellustesi ei tarvitse muuttaa tapaa, jolla ne kirjaavat ihmiset sisään.
- OIDC Core · Discovery
OpenID Connect
Oma discovery-dokumentti jokaiselle ympäristölle, ID-tunnukset ja userinfo. Mikä tahansa sertifioitu asiakaskirjasto toimii.
- Vain S256
OAuth 2.1 ja PKCE
Valtuutuskoodi ja PKCE jokaiselle asiakkaalle, julkiselle tai luottamukselliselle. Ei implisiittistä kulkua, ei salasanoja tunnuspäätepisteessä.
- RS256 · ES256 · EdDSA
JWKS ja avainten vaihto
Jokainen ympäristö allekirjoittaa omilla avaimillaan, jotka julkaistaan sen jwks_uri-osoitteessa. Vaihda avaimet ilman, että kirjautuneet ihmiset putoavat ulos.
- RFC 7662 · RFC 7009
Introspektio ja mitätöinti
Kysy, onko tunnus yhä voimassa, tai lopeta se heti. Usher Identity tarkistaa omat istuntonsa jokaisella pyynnöllä, joten istunnon lopettaminen tulee voimaan saman tien.
RP:n käynnistämä uloskirjaus ja taustakanavan uloskirjaus
Kirjaudu ulos sovelluksestasi, tai anna Usher Identityn kertoa jokaiselle sovellukselle, kun istunto päättyy missä tahansa.
- RFC 9449
DPoP
Sido tunnukset avaimeen, joka on asiakkaan hallussa, niin varastettu tunnus ei yksinään kelpaa mihinkään.
- WebAuthn
Pääsyavaimet
Täysivaltainen ominaisuus, ei lisäosa. Ihmiset kirjautuvat sormenjäljellä, kasvoilla tai suojausavaimella, eikä kalasteltavaa ole.
- TOTP
Todennussovellukset
Aikaan perustuvat koodit mistä tahansa todennussovelluksesta, varakoodeineen. Tee toisesta vaiheesta valinnainen tai pakollinen.
Taikalinkit
Yksi napautus postilaatikosta. Lyhytikäisiä, kertakäyttöisiä ja sidottuja ympäristöön, joka ne lähetti.
Sähköpostikoodit
Kuusi numeroa ihmisille, jotka kirjautuvat yhdellä laitteella ja lukevat sähköpostia toisella.
Kirjautuminen sometilillä
Google, GitHub, Microsoft ja Apple. Tili yhdistetään vain, kun sen sähköpostiosoite on todennettu.
Organisaatiot ja tiimit
Jäsenet, roolit ja kutsut yrityksille, jotka käyttävät sovellustasi.
- Tulossa
SAML
Kertakirjautuminen asiakkaidesi omilla työpaikan identiteetintarjoajilla.
- Tulossa
SCIM
Käyttäjien lisääminen ja poistaminen suoraan asiakkaidesi hakemistoista.
Miten kirjautuminen toimii
Viisi vaihetta, jokainen standardin mukainen.
Tämä on OpenID Connectin valtuutuskoodikulku PKCE:llä, sama kulku, jota jokainen vakavasti otettava identiteetintarjoaja puhuu. Vieritä sen läpi.
- 01
Sovelluksesi lähettää hänet Lobbyyn.
Kun joku valitsee ”Jatka Usher Identitylla”, sovelluksesi ohjaa hänet ympäristösi valtuutuspäätepisteeseen, mukanaan PKCE-haaste ja state-arvo, jonka sovellus tarkistaa myöhemmin.
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
Hän kirjautuu omalla tavallaan.
Pääsyavain, sähköpostikoodi, taikalinkki, sometili tai salasana: Lobby tarjoaa vain sitä, mitä ympäristösi sallii, ja kertoo aina, mihin sovellukseen hän on menossa.
Usher IdentityUsher IdentityJatkat palveluun AcmeTervetuloa takaisin.
Käytä pääsyavaintaLähetä minulle koodi sähköpostiin - 03
Hän suostuu jakamaan tietonsa.
Ensimmäisellä kerralla ihmiset näkevät, mitä sovelluksesi pyytää (profiilin, sähköpostiosoitteen, kirjautuneena pysymisen), ja suostuvat kerran.
Acme haluaa:
- Nähdä nimesi ja kuvasi
- Nähdä sähköpostiosoitteesi
- Pitää sinut kirjautuneena
KumoaSalli - 04
Usher Identity antaa takaisin koodin.
Selain palaa uudelleenohjaus-URI-osoitteeseesi mukanaan kertakäyttöinen, viisi minuuttia voimassa oleva koodi sekä lähettämäsi state-arvo, jonka sovelluksesi tarkistaa.
302 Found Location: https://app.acme.example/callback ?code=SplxlOBeZQQYbYS6WxSbIA &state=k3Jx…
- 05
Sovelluksesi vaihtaa sen tunnuksiin.
Palvelimesi lähettää koodin ja PKCE-todentajan tunnuspäätepisteeseen. Takaisin tulevat ID-tunnus, joka kertoo, kuka hän on, käyttöoikeustunnus API:llesi ja päivitystunnus, jolla hän pysyy kirjautuneena.
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 }
Eristetty alusta alkaen
Jokainen ympäristö on oma rakennuksensa.
Tuotanto- ja kehitysympäristösi sekä jokaisen muun asiakkaan ympäristöt eivät jaa mitään olennaista. Yhdessä tehty virhe ei voi lukea toista, allekirjoittaa sen puolesta eikä kirjautua siihen.
- Oma Postgres-skeema
- Ei asiakassaraketta jaetussa taulussa, vaan ympäristöä varten tehty skeema, jossa ei ole mitään muuta.
- Omat allekirjoitusavaimet
- Yhden ympäristön tunnuksia ei voi koskaan todentaa toisen ympäristön avaimilla.
- Omat sinetöidyt salaisuudet
- Sinetöity ympäristön omalla tietoavaimella, joka puolestaan on salattu pääavaimella.
- Oma isäntänimi
- Myöntäjät ovat eri verkkotunnuksessa kuin Usherin sivusto ja Console, ja niiden evästeet ovat isäntäkohtaisia.
usheridentity.com
Sivusto, Usher Identity Console, Usher Identity -tilit
*.usherid.com
Yksi myöntäjä ympäristöä kohden, eri verkkotunnuksessa
Käyttäjät, istunnot ja tunnukset ovat skeemassa, joka on tehty tätä ympäristöä varten. Kyselyt kohdistuvat tähän skeemaan, ei koskaan jaettuun tauluun, jossa on asiakassarake.
Kopioi projektin Acme tuotantoympäristön sinetöity Google-asiakassalaisuus projektin Northwind tuotantoympäristöön.
Kehittäjille
Ensimmäinen kirjautumisesi, kolmella tavalla.
Ota SDK käyttöön, kun se julkaistaan, käytä OIDC-kirjastoa, johon jo luotat, tai aloita lukemalla discovery-dokumentti. Pohjalla on aina sama protokolla.
// 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 />
}Ylläpidä itse
Omat palvelimesi, omat avaimesi.
Käytä Usher Identitya palveluna tai aja samaa alustaa omilla palvelimillasi, omilla avaimillasi ja omalla tietokannallasi.
Docker
Yksi Compose-tiedosto: sovellukset, Postgres, Valkey, Caddy-reuna ja lähtevän liikenteen välityspalvelin. Kontit eivät voi saada uusia oikeuksia, ja niiden capability-oikeudet on poistettu.
Ubuntu
Tavallinen Ubuntu-palvelin riittää. Caddy päättää TLS-yhteydet, ja salaisuudet annetaan konteille tiedostoina, ei koskaan levykuviin leivottuina.
Postgres
Postgres säilyttää kaiken, yksi skeema ympäristöä kohden. Se ja Valkey ovat verkossa, josta ei ole reittiä internetiin.
# 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 migrationsTäydellinen itseylläpito-opas on tulossa. Yllä olevista komennoista näkee, millainen siitä tulee.
Saata käyttäjäsi sisään.
Luo työtila ja projekti, niin ensimmäinen ympäristösi saa oman myöntäjän, omat avaimet ja oman Lobbyn.
Kirjaudu kerran. Olet tervetullut kaikkialle.