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.
- OpenID Connect
- OAuth 2.1
- PKCE
- WebAuthn
- JWKS
- DPoP
- TOTP
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 ü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.
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.
- 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.
- 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
- 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: AcmeTekrar hoş geldiniz.
Geçiş anahtarı kullanBana e-postayla kod gönder - 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 - 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…
- 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ı
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
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.
# 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 migrationsKendi 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.