İçeriğe geç

Uygulamalarınız için açık standartlara dayalı kimlik

Sizi içeri buyur eder.

Tek hesap. Bütün kapılar.

Usher Identity, insanların uygulamalarınıza OpenID Connect ve OAuth 2.1 ile girmesini sağlar: geçiş anahtarları, kodlar, sosyal hesapla giriş ve kuruluşlar; her ortam diğer bütün ortamlardan ayrı tutulur.

Başlamak ücretsiz. Kendi sunucularınızda da çalışır.

Lobby

Sorguya çekmeyen, hoş karşılayan bir giriş sayfası.

Lobby, Usher Identity’nin uygulamanız için barındırdığı giriş sayfasıdır. Kişinin nereye gittiğini her zaman söyler ve onu hangi uygulama gönderirse göndersin aynı görünür; böylece insanlar ona güvenmeyi öğrenir.

Gideceğiniz yer
Tema
  • Gideceğiniz ürünü her seferinde adıyla söyler.
  • Geçiş anahtarları, e-postayla gönderilen kodlar ve sihirli bağlantılar; parolalar yalnızca siz isterseniz.
  • Açık ya da koyu, her üründe aynı sakin sayfa.

Bu, Lobby’nin çalışan bir kopyasıdır. Bu sayfanın içinde çalışır, hiçbir şey göndermez ve kimsenin girişini yapmaz.

Usher IdentityUsher IdentityGideceğiniz yer: Acme Notes

Tekrar hoş geldiniz.

Usher Identity hesabınızla giriş yapın.

Yeni misiniz?

Usher Identity ile korunuyor

Bağımlılık değil, standartlar

Altyapınızın zaten bildiği protokolleri konuşur.

Usher Identity her şeyden önce bir OpenID Connect sağlayıcısıdır. İşinize geldiğinde SDK’mızı, istediğinizde herhangi bir dilde herhangi bir OIDC kütüphanesini kullanın. Bir gün ayrılırsanız uygulamalarınızın giriş yöntemini değiştirmesi gerekmez.

Yenileme belirteçleri, onay ve kapsamlar dahil.
  • OIDC Core · Discovery

    OpenID Connect

    Her ortam için bir keşif belgesi, kimlik belirteçleri ve userinfo. Sertifikalı her istemci kütüphanesi çalışır.

  • Yalnızca S256

    PKCE ile OAuth 2.1

    Genel ya da gizli, her istemci için PKCE ile yetkilendirme kodu. Örtük akış yok, belirteç uç noktasında parola yok.

  • RS256 · ES256 · EdDSA

    JWKS ve anahtar döndürme

    Her ortam kendi anahtarlarıyla imzalar ve bunları kendi jwks_uri adresinde yayımlar. Giriş yapmış kişileri etkilemeden anahtarları döndürün.

  • RFC 7662 · RFC 7009

    Belirteç sorgulama ve iptal

    Bir belirtecin hâlâ geçerli olup olmadığını sorun ya da onu hemen sonlandırın. Usher Identity her istekte kendi oturumlarını denetler; bu yüzden bir oturumu sonlandırmak anında etkili olur.

  • RP tarafından başlatılan ve arka kanal oturum kapatma

    Uygulamanızdan çıkış yapın ya da bir oturum herhangi bir yerde sona erdiğinde Usher Identity’nin bunu her uygulamaya bildirmesini sağlayın.

  • RFC 9449

    DPoP

    Belirteçleri istemcinin elindeki bir anahtara bağlayın; böylece çalınan bir belirteç tek başına işe yaramaz.

  • WebAuthn

    Geçiş anahtarları

    Sonradan eklenmiş bir özellik değil, baştan beri temel bir parça. İnsanlar parmak izi, yüz ya da güvenlik anahtarıyla giriş yapar ve kimlik avına açık hiçbir şey kalmaz.

  • TOTP

    Kimlik doğrulama uygulamaları

    Herhangi bir kimlik doğrulama uygulamasından zamana dayalı kodlar, yedek kodlarla birlikte. İkinci faktörü isteğe bağlı ya da zorunlu yapın.

  • Sihirli bağlantılar

    Gelen kutusundan tek dokunuş. Kısa ömürlü, tek kullanımlık ve onları gönderen ortama bağlı.

  • E-posta kodları

    Bir aygıtta giriş yapıp e-postasını başka bir aygıtta okuyanlar için altı haneli kod.

  • Sosyal hesapla giriş

    Google, GitHub, Microsoft ve Apple. Bir hesap ancak e-postası kanıtlandığında bağlanır.

  • Kuruluşlar ve ekipler

    Uygulamanızı kullanan işletmeler için üyeler, roller ve davetler.

  • Yakında

    SAML

    Müşterilerinizin çalışan kimlik sağlayıcılarıyla çoklu oturum açma.

  • Yakında

    SCIM

    Müşterilerinizin dizinlerinden kişilerin otomatik eklenmesi ve kaldırılması.

Bir giriş nasıl işler?

Beş adım, her biri standart.

Bu, OpenID Connect’in PKCE ile yetkilendirme kodu akışıdır; ciddi her kimlik sağlayıcısının konuştuğu akışın ta kendisi. Kaydırarak adım adım izleyin.

  1. 01

    Uygulamanız onları Lobby’ye gönderir.

    Biri Usher Identity ile devam et düğmesine bastığında uygulamanız onu, bir PKCE sınaması ve daha sonra kontrol edeceği bir state değeriyle ortamınızın yetkilendirme uç noktasına yönlendirir.

    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

    Kendi bildikleri yoldan giriş yaparlar.

    Geçiş anahtarı, e-postayla gönderilen kod, sihirli bağlantı, sosyal hesap ya da parola: Lobby yalnızca ortamınızın izin verdiklerini sunar ve hangi uygulamaya gittiklerini her zaman söyler.

    Usher IdentityUsher IdentityGideceğiniz yer: Acme

    Tekrar hoş geldiniz.

    Geçiş anahtarı kullan
    Bana e-postayla kod gönder
  3. 03

    Paylaşmayı kabul ederler.

    İlk seferinde insanlar uygulamanızın ne istediğini (profillerini, e-postalarını, oturumlarının açık kalmasını) görür ve bir kez onaylar.

    Acme şunları yapmak istiyor:

    • Adınızı ve resminizi görmek
    • E-posta adresinizi görmek
    • Oturumunuzu açık tutmak
    Vazgeçİzin ver
  4. 04

    Usher Identity bir kod verir.

    Tarayıcı, beş dakika geçerli tek kullanımlık bir kod ve sizin gönderdiğiniz state değeriyle yönlendirme URI’nize döner; uygulamanız bu değeri kontrol eder.

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

    Uygulamanız onu belirteçlerle değiştirir.

    Sunucunuz kodu ve PKCE doğrulayıcısını belirteç uç noktasına gönderir. Karşılığında kişinin kim olduğunu söyleyen bir kimlik belirteci, API’niz için bir erişim belirteci ve oturumun açık kalması için bir yenileme belirteci gelir.

    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
    }

Tasarımdan gelen yalıtım

Her ortam ayrı bir binadır.

Üretim ve geliştirme ortamlarınız da, diğer her müşterinin ortamları da önemli hiçbir şeyi paylaşmaz. Birindeki bir hata başka bir ortamı okuyamaz, onun adına imza atamaz, ona giriş yapamaz.

Kendi Postgres şeması
Paylaşılan bir tablodaki kiracı sütunu değil: ortam için oluşturulmuş ve içinde başka hiçbir şey olmayan bir şema.
Kendi imzalama anahtarları
Bir ortamın belirteçleri asla başka bir ortamın anahtarlarıyla doğrulanamaz.
Kendi mühürlü gizli bilgileri
Ortamın kendi veri anahtarıyla mühürlenir; bu anahtar da bir ana anahtarla sarmalanır.
Kendi adresi
Yayıncılar, Usher’ın sitesinden ve Console’dan ayrı bir alan adında bulunur ve yalnızca kendi ana makine adlarına ait çerezler kullanır.

usheridentity.com

Site, Usher Identity Console, Usher Identity hesapları

*.usherid.com

Her ortam için ayrı bir alan adında bir yayıncı

Ortam

Kullanıcılar, oturumlar ve belirteçler bu ortam için oluşturulmuş bir şemada durur. Sorgular asla kiracı sütunlu paylaşılan bir tabloda değil, bu şemada çalışır.

Acme üretim ortamının mühürlü Google istemci gizli anahtarını Northwind üretim ortamına kopyala.

Geliştiriciler için

İlk girişiniz, üç yoldan.

SDK geldiğinde onu ekleyin, zaten güvendiğiniz OIDC kütüphanesini kullanın ya da işe keşif belgesini okuyarak başlayın. Altta hepsi aynı protokol.

app/layout.tsx · app/page.tsxSDK ile geliyor
// 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 />
}

Kendiniz çalıştırın

Sizin sunucularınız, sizin anahtarlarınız.

Usher Identity’yi bir hizmet olarak kullanın ya da aynı platformu kendi anahtarlarınız ve kendi veritabanınızla kendi sunucularınızda çalıştırın.

  • Docker

    Tek bir Compose dosyası: uygulamalar, Postgres, Valkey, Caddy kenar sunucusu ve çıkış proxy’si. Konteynerler yeni ayrıcalık edinemeden ve yetkileri (capabilities) kaldırılmış olarak çalışır.

  • Ubuntu

    Sade bir Ubuntu sunucusu yeterlidir. TLS’i Caddy sonlandırır; gizli bilgiler konteynerlere verilen dosyalardır, asla imajlara gömülmez.

  • Postgres

    Her şeyi Postgres tutar; her ortam için bir şema. Postgres ve Valkey, internete hiçbir yolu olmayan bir ağda durur.

Usher Identity deposunun bir kopyasından
# 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

Kendi sunucunuzda barındırma kılavuzunun tamamı yolda. Yukarıdaki komutlar onun ana hatlarıdır.

Kullanıcılarınızı içeri buyur edin.

Bir çalışma alanı ve bir proje oluşturun; ilk ortamınız kendi yayıncısı, anahtarları ve Lobby’siyle birlikte gelir.

Bir kez giriş yapın. Her yerde hoş geldiniz.