Langkau ke kandungan

Identiti untuk aplikasi anda, di atas standard terbuka

Mengiringi anda masuk.

Satu akaun. Setiap pintu.

Usher Identity mendaftar masuk orang ke aplikasi anda dengan OpenID Connect dan OAuth 2.1: kunci laluan, kod, daftar masuk sosial dan organisasi, dengan setiap persekitaran diasingkan daripada yang lain.

Percuma untuk bermula. Boleh juga dijalankan pada pelayan anda sendiri.

Lobby

Halaman daftar masuk yang menyambut, bukan menyoal siasat.

Lobby ialah halaman daftar masuk yang dihoskan oleh Usher Identity untuk aplikasi anda. Ia sentiasa menyatakan ke mana orang itu pergi, dan rupanya sama tidak kira aplikasi mana yang menghantar mereka, jadi orang belajar untuk mempercayainya.

Meneruskan ke
Tema
  • Menamakan produk yang anda tuju, setiap kali.
  • Kunci laluan, kod melalui e-mel dan pautan ajaib, dengan kata laluan hanya jika anda mahu.
  • Halaman tenang yang sama, cerah atau gelap, dalam setiap produk.

Ini ialah salinan Lobby yang berfungsi. Ia berjalan dalam halaman ini, tidak menghantar apa-apa, dan tidak mendaftar masuk sesiapa.

Usher IdentityUsher IdentityMeneruskan ke Acme Notes

Selamat kembali.

Daftar masuk dengan akaun Usher Identity anda.

Baru di sini?

Dilindungi oleh Usher Identity

Standard, bukan kebergantungan

Menggunakan protokol yang sudah dikenali oleh susunan teknologi anda.

Usher Identity ialah penyedia OpenID Connect terlebih dahulu. Gunakan SDK kami apabila sesuai, atau mana-mana pustaka OIDC dalam mana-mana bahasa. Jika anda pergi suatu hari nanti, aplikasi anda tidak perlu mengubah cara ia mendaftar masuk pengguna.

Token muat semula, persetujuan dan skop disertakan.
  • OIDC Core · Discovery

    OpenID Connect

    Dokumen penemuan untuk setiap persekitaran, token ID dan userinfo. Mana-mana pustaka klien yang diperakui berfungsi.

  • S256 sahaja

    OAuth 2.1 dengan PKCE

    Kod kebenaran dengan PKCE untuk setiap klien, awam atau sulit. Tiada aliran implisit, tiada kata laluan di titik akhir token.

  • RS256 · ES256 · EdDSA

    JWKS dan putaran kunci

    Setiap persekitaran menandatangan dengan kunci tersendiri, yang diterbitkan di jwks_uri miliknya. Putar kunci tanpa mengganggu orang yang sudah daftar masuk.

  • RFC 7662 · RFC 7009

    Introspeksi dan pembatalan

    Tanya sama ada token masih sah, atau tamatkannya sekarang. Usher Identity menyemak sesinya sendiri pada setiap permintaan, jadi menamatkan sesi berkuat kuasa serta-merta.

  • Log keluar dimulakan RP dan saluran belakang

    Daftar keluar dari aplikasi anda, atau biar Usher Identity memberitahu setiap aplikasi apabila sesi tamat di mana-mana.

  • RFC 9449

    DPoP

    Ikat token pada kunci yang dipegang oleh klien, supaya token yang dicuri tidak berguna dengan sendirinya.

  • WebAuthn

    Kunci laluan

    Ciri utama, bukan tambahan. Orang daftar masuk dengan cap jari, wajah atau kunci keselamatan, dan tiada apa-apa untuk dipancing.

  • TOTP

    Aplikasi pengesah

    Kod berasaskan masa daripada mana-mana aplikasi pengesah, dengan kod sandaran. Jadikan faktor kedua pilihan atau wajib.

  • Pautan ajaib

    Satu ketikan dari peti masuk. Jangka hayat singkat, sekali guna, dan terikat pada persekitaran yang menghantarnya.

  • Kod e-mel

    Enam digit, untuk orang yang daftar masuk pada satu peranti dan membaca e-mel pada peranti lain.

  • Daftar masuk sosial

    Google, GitHub, Microsoft dan Apple. Akaun hanya dipautkan apabila e-melnya telah dibuktikan.

  • Organisasi dan pasukan

    Ahli, peranan dan jemputan untuk perniagaan yang menggunakan aplikasi anda.

  • Akan datang

    SAML

    Daftar masuk tunggal dengan penyedia identiti tenaga kerja pelanggan anda.

  • Akan datang

    SCIM

    Peruntukan dan nyahperuntukan daripada direktori pelanggan anda.

Cara daftar masuk berfungsi

Lima langkah, setiap satunya standard.

Inilah aliran kod kebenaran OpenID Connect dengan PKCE, aliran yang sama digunakan oleh setiap penyedia identiti yang serius. Tatal untuk melihatnya.

  1. 01

    Aplikasi anda menghantar mereka ke Lobby.

    Apabila seseorang memilih Teruskan dengan Usher Identity, aplikasi anda mengubah hala mereka ke titik akhir kebenaran persekitaran anda, dengan cabaran PKCE dan nilai state yang akan disemaknya kemudian.

    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

    Mereka daftar masuk, dengan cara mereka.

    Kunci laluan, kod melalui e-mel, pautan ajaib, akaun sosial atau kata laluan: Lobby hanya menawarkan apa yang dibenarkan oleh persekitaran anda, dan sentiasa menyatakan aplikasi yang mereka tuju.

    Usher IdentityUsher IdentityMeneruskan ke Acme

    Selamat kembali.

    Gunakan kunci laluan
    Hantar kod melalui e-mel
  3. 03

    Mereka bersetuju untuk berkongsi.

    Pada kali pertama, orang melihat apa yang diminta oleh aplikasi anda (profil mereka, e-mel mereka, kekal didaftar masuk) dan bersetuju sekali sahaja.

    Acme ingin:

    • Melihat nama dan gambar anda
    • Melihat alamat e-mel anda
    • Memastikan anda kekal didaftar masuk
    BatalBenarkan
  4. 04

    Usher Identity memulangkan kod.

    Pelayar kembali ke URI ubah hala anda dengan kod sekali guna yang sah selama lima minit, dan state yang anda hantar, yang disemak oleh aplikasi anda.

    302 Found
    Location: https://app.acme.example/callback
      ?code=SplxlOBeZQQYbYS6WxSbIA
      &state=k3Jx…
  5. 05

    Aplikasi anda menukarnya dengan token.

    Pelayan anda menghantar kod dan pengesah PKCE ke titik akhir token. Sebagai balasan, ia menerima token ID yang menyatakan siapa mereka, token akses untuk API anda, dan token muat semula untuk kekal didaftar masuk.

    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
    }

Pengasingan secara reka bentuk

Setiap persekitaran ialah bangunan tersendiri.

Persekitaran produksi dan pembangunan anda, serta milik setiap pelanggan lain, tidak berkongsi apa-apa yang penting. Kesilapan dalam satu persekitaran tidak boleh membaca, menandatangan untuk atau daftar masuk ke persekitaran lain.

Skema Postgres tersendiri
Bukan lajur penyewa dalam jadual yang dikongsi: skema yang dibuat untuk persekitaran itu, dan tiada apa-apa lagi di dalamnya.
Kunci tandatangan tersendiri
Token daripada satu persekitaran tidak boleh sekali-kali disahkan dengan kunci persekitaran lain.
Rahsia termeterai tersendiri
Dimeterai dengan kunci data persekitaran itu sendiri, yang pula dibalut oleh kunci induk.
Hos tersendiri
Pengeluar berada di domain yang berasingan daripada laman web dan Console Usher, dengan kuki hos sahaja.

usheridentity.com

Laman web, Usher Identity Console, akaun Usher Identity

*.usherid.com

Satu pengeluar bagi setiap persekitaran, di domain yang berasingan

Persekitaran

Pengguna, sesi dan token disimpan dalam skema yang dibuat untuk persekitaran ini. Pertanyaan dijalankan terhadap skema itu, tidak pernah terhadap jadual dikongsi yang mempunyai lajur penyewa.

Salin rahsia klien Google termeterai milik Acme produksi ke dalam Northwind produksi.

Untuk pembangun

Daftar masuk pertama anda, tiga cara.

Pasang SDK apabila ia tiba, gunakan pustaka OIDC yang sudah anda percayai, atau mulakan dengan membaca dokumen penemuan. Semuanya protokol yang sama di bawahnya.

app/layout.tsx · app/page.tsxAkan datang bersama SDK
// 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 />
}

Jalankan sendiri

Pelayan anda, kunci anda.

Gunakan Usher Identity sebagai perkhidmatan, atau jalankan platform yang sama pada pelayan anda sendiri, dengan kunci anda sendiri dan pangkalan data anda sendiri.

  • Docker

    Satu fail Compose: aplikasi, Postgres, Valkey, tepi Caddy dan proksi keluar. Kontena berjalan tanpa keistimewaan baharu dan dengan keupayaan digugurkan.

  • Ubuntu

    Pelayan Ubuntu biasa sudah memadai. Caddy menamatkan TLS, dan rahsia ialah fail yang diserahkan kepada kontena, tidak pernah dibakar ke dalam imej.

  • Postgres

    Postgres menyimpan segala-galanya, satu skema bagi setiap persekitaran. Ia dan Valkey berada pada rangkaian tanpa laluan ke internet.

Daripada salinan Usher Identity
# 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

Panduan penuh untuk menghos sendiri sedang dalam perjalanan. Arahan di atas menunjukkan gambarannya.

Iringi pengguna anda masuk.

Cipta ruang kerja dan projek, dan persekitaran pertama anda disertakan dengan pengeluar, kunci dan Lobby tersendiri.

Daftar masuk sekali. Dialu-alukan di mana-mana.