Siirry sisältöön

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.

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.

Jatkat palveluun
Teema
  • 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.

Usher IdentityUsher IdentityJatkat palveluun Acme Notes

Tervetuloa takaisin.

Kirjaudu Usher Identity -tililläsi.

Uusi täällä?

Suojauksen tarjoaa Usher Identity

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.

Päivitystunnukset, suostumus ja käyttöalueet mukana.
  • 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.

  1. 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
  2. 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 Acme

    Tervetuloa takaisin.

    Käytä pääsyavainta
    Lähetä minulle koodi sähköpostiin
  3. 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
  4. 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…
  5. 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

Ympäristö

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 · app/page.tsxTulossa SDK:n mukana
// 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.

Usher Identityn lähdekoodikopiosta
# 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

Tä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.