Kavramlar
Birkaç fikir, Usher’daki neredeyse her şeyi açıklar: şeylerin nerede durduğu, belirteçleri kimin verdiği, insanların nerede giriş yaptığı ve her belirtecin ne kadar geçerli olduğu.
Çalışma alanları, projeler ve ortamlar
- Çalışma alanı, Usher Console’daki ekibiniz ya da şirketinizdir. Üyeleri ve denetim günlüğü ona aittir.
- Proje, tek bir üründür: web uygulamanız ya da bir iş ortağı portalı. Bir çalışma alanında birçok proje olabilir.
- Ortam, bir projenin çalışan bir kopyasıdır; genellikle geliştirme ve üretim. Kişiler, uygulamalar, anahtarlar ve ayarlar ortamlarda durur.
Çalışma alanı · Acme Ltd
Proje · Web
- development · wise-otter-42
- production · acme
Proje · İş ortağı portalı
- development · calm-heron-17
- production · acme-partners
Ortamlar önemli hiçbir şeyi paylaşmaz. Her birinin kendi Postgres şeması, kendi imzalama anahtarları ve kendi veri anahtarı altında mühürlenmiş kendi gizli bilgileri vardır. Geliştirme ortamında kaydolan bir kişi üretimde yoktur ve birinin belirteci asla diğerinin anahtarlarıyla doğrulanamaz.
Bir çalışma alanı yöneticisi, bir projeyi adını yazdıktan sonra Genel bakış sayfasının sonundan silebilir. İçindeki her ortam bir anda gider: kişileri, uygulamaları, anahtarları ve ayarlarıyla birlikte verdiği her oturum ve belirteç. Adresleri yanıt vermeyi bırakır ve asla yeniden verilmez; böylece bunlardan birine hâlâ güvenen bir uygulama, başka birinin projesiyle kandırılamaz.
Yayıncılar
Her ortam, kiracı alan adındaki kendi ana makinesinde ayrı bir OpenID Connect yayıncısıdır (issuer):
https://<handle>.usherid.com- Üretim ortamlarının sizin seçtiğiniz bir kısa adı vardır: şirketinizin adı gibi, 3 ila 32 küçük harf, rakam ve tek kısa çizgiden oluşur. Bir kez kullanılmış bir kısa ad asla yeniden verilmez.
- Geliştirme ortamları, kimsenin bir markayla karıştırmayacağı
wise-otter-42gibi rastgele bir kısa ad alır.
Yayıncı, ortam oluşturulurken sabitlenir; çünkü imzaladığı her belirteç onu iss içinde adlandırır ve ona güvenen her uygulama bu değeri denetler.
Kiracı alan adı, Usher’ın kendi alan adından (usheridentity.com) farklı, kayıt edilebilir bir alan adıdır; bu yüzden bir müşterinin giriş sayfaları Usher Console ile asla aynı sitede (same-site) olmaz. Çerezler de yalnızca kendi ana makinelerine aittir: tarayıcı bir ortamın çerezlerini yalnızca o ortama gönderir.
Lobby
Lobby, her ortamın kendi yayıncısında barındırdığı giriş sayfasıdır. Uygulamanız insanları oraya gönderir; Lobby onların girişini yapar ve onları geri gönderir.
- Kişinin gittiği uygulamayı her zaman “Gideceğiniz yer” etiketinde adıyla söyler.
- Yalnızca ortamın izin verdiği yöntemleri sunar: geçiş anahtarları, e-postayla gönderilen kodlar, sihirli bağlantılar, sosyal hesaplar (Google, GitHub, Microsoft, Apple) ve parolalar.
- İkinci bir faktör isteyebilir: bir kimlik doğrulama uygulaması (yedek kodlarıyla) ya da bir geçiş anahtarı.
- Herkese açık olabilir ya da adreslerden ve alan adlarından oluşan bir davetli listesiyle sınırlanabilir.
Kişiyi hangi ürün gönderirse göndersin aynı görünür. Bu bilinçli bir tercihtir: insanlar gerçek bir Lobby’nin neye benzediğini öğrenir ve bir sayfa Lobby değilse bunu fark eder.
Usher hesapları
Çoğu ortamın kendi kullanıcıları vardır. Usher hesapları farklıdır: Usher ile devam et düğmesini sunan her uygulamaya bir kişinin girişini sağlayan tek bir hesap. İnsanlar hesaplarını account.usheridentity.com adresinde yönetir.
Belirteçler ve geçerlilik süreleri
| Belirteç | Varsayılan | Ayarlanabilir aralık | Ne işe yarar? |
|---|---|---|---|
| Yetkilendirme kodu | 5 dakika | Sabit | Bir kez belirteçlerle değiştirilir. Tek kullanımlık. |
| Kimlik belirteci | 10 dakika | 1–60 dakika | Uygulamanıza kimin giriş yaptığını söyler. API çağırmak için değildir. |
| Erişim belirteci | 10 dakika | 1–60 dakika | API’nize gönderilir, API’niz onu denetler. |
| Yenileme belirteci | 30 gün | 1–90 gün | Yeni erişim belirteçleri alır. Her kullanımda yenisiyle değişir. offline_access gerekir. |
| Makine erişim belirteci | 15 dakika | 1–60 dakika | client_credentials için: arkasında bir kişi olmayan sunucular. |
| E-postayla gönderilen kod, sihirli bağlantı | 10 dakika | Sabit | Tek bir giriş. Bir kod üç deneme hakkı tanır. |
Lobby’deki oturumların da geçerlilik süreleri vardır: bir oturum 7 gün kullanılmazsa (1–30) ve toplamda 30 gün sonra (1–90) sona erer. E-posta adresi gibi hassas bir şeyi değiştirmek, son 10 dakika içinde yapılmış bir giriş gerektirir.
İmzalama anahtarları
Belirteçler varsayılan olarak RS256 ile imzalanır; bir ortam bunun yerine ES256 ya da EdDSA kullanabilir. Genel anahtarlar ortamın jwks_uri adresinde yayımlanır; böylece kütüphaneleriniz onları kendisi alır ve anahtarlar döndürüldüğünde yenilerini de alır.
Kapsamlar
| Kapsam | Uygulamanızın aldığı |
|---|---|
openid | Zorunlu. Kişinin sub değerini içeren bir kimlik belirteci. |
profile | Adı ve resmi. |
email | E-posta adresi ve doğrulanıp doğrulanmadığı. |
offline_access | Oturumun açık kalması için bir yenileme belirteci. |