Logto ürün güncellemeleri
🎉 Temmuz sürümümüzü tanıtıyoruz: Logto API SDK'sı, Federasyonlu token depolama için Gizli kasa, Hesap API'si ile TOTP ve Yedek Kodları yönetme ve çok daha fazlası!
Logto API SDK'sı
Logto'nun Yönetim API'si ile istemci kimlik bilgileri doğrulaması kullanarak etkileşim kurmak için bir TypeScript SDK'sı.
Nasıl çalışır:
- Logto Konsolu'nda bir makineden makineye uygulama oluştur.
- Uygulamaya Yönetim API'sine erişim izni ver.
- SDK'yı npm ile kur:
npm install @logto/api
- Uygulamanın kimlik bilgileri ile tipli bir Yönetim API istemcisi oluşturmak için
createManagementApi()
kullan.
Öne çıkanlar:
- OAuth token kimlik doğrulamasını ve yenilemeyi otomatik olarak yönetir.
- Hem Logto Cloud'u hem de kendi barındırılan instance'ları destekler.
- Logto'nun Yönetim API'si ile entegrasyonu sadeleştirir, böylece düşük seviyeli API isteklerini yönetmek yerine özellikler geliştirmeye odaklanabilirsin.
Gizli kasa
Gizli kasa, Logto'da hassas kullanıcı verilerinin, erişim token'larının, API anahtarlarının, şifrelerin ve diğer gizli bilgilerin yönetilmesi için güvenli bir depolama çözümüdür. Bu sırlar genellikle kullanıcılar adına üçüncü taraf hizmetlere erişmek için kullanılır ve güvenli depolama kritik öneme sahiptir.
Federasyonlu Token Depolama Desteği
Token depolama artık hem sosyal hem de kurumsal SSO bağlayıcıları için destekleniyor. Etkinleştirildiğinde, Logto kimlik sağlayıcısı tarafından başarılı kimlik doğrulama sonrası verilen token setini depolar. Uygulamalar daha sonra erişim token'ını tekrar kimlik doğrulaması gerektirmeden alabilir—böylelikle üçüncü taraf API'lara erişim sağlanır.
Desteklenen bağlayıcılar:
- Sosyal bağlayıcılar: GitHub, Google, Facebook, Standart OAuth 2.0, ve Standart OIDC
- Kurumsal SSO bağlayıcıları: Tüm OIDC tabanlı SSO bağlayıcıları
Nasıl çalışır:
- Logto Konsolu'nda veya Logto Yönetim API'si aracılığıyla sosyal ve kurumsal SSO bağlayıcılarında token depolamayı etkinleştir.
- Etkinleştirildiğinde, Logto başarılı kullanıcı kimlik doğrulaması sonrası sağlayıcı tarafından verilen token setini otomatik olarak depolar.
- Gerektiğinde, depolanan token'ı Hesap API'si aracılığıyla al.
Daha fazla bilgi için Gizli kasa dökümantasyonu adresine bakabilirsin.
Hesap API'si ile TOTP ve Yedek Kodları Ekle
Kullanıcılar artık Hesap API'si üzerinden TOTP ve yedek kodları ekleyebilir.
POST /api/my-account/mfa-verifications/totp-secret/generate
: Bir TOTP sırrı oluştur.POST /api/my-account/mfa-verifications/backup-codes/generate
: Yedek kodlar üret.POST /api/my-account/mfa-verifications
: Oluşturulan sır veya kodlarla birlikte bir TOTP veya yedek kodu ekle.GET /api/my-account/mfa-verifications/backup-codes
: Yedek kodları al.
Diğer İyileştirmeler
- Sosyal bağlayıcılar: Sosyal bağlayıcılar için yetkilendirme URL'si oluşturulurken özel bir
scope
parametresi sağlanmasını destekledik. Bu, Logto sosyal doğrulama endpoint'i çağrılırken sosyal sağlayıcıdan ek izinler istemeni sağlar. Eğer scope sağlanırsa, yetkilendirme isteğinde bu kullanılacak; aksi takdirde bağlayıcı ayarlarında yapılandırılmış olan varsayılan scope kullanılacaktır. - Konsol: Yeni Gizli kasa özelliğini daha iyi desteklemek için, kullanıcı detay sayfasının düzenini yeniden oluşturduk. Kullanıcı sosyal ve kurumsal SSO kimlikleri yeni bir Bağlantılar bölümünde gruplandı. Bu bölümde, bir kullanıcının tüm bağlı bağlantıları listelenir ve üçüncü taraf kimlik bilgileri ile token depolama durumu (uygunsa) gösterilir. Her bağlantı için daha ayrıntılı kullanıcı kimliği sayfası da sunuluyor; burada bağlanan kimlik ve ilgili token'lar hakkında daha fazla bilgi bulabilirsin.
Hata Düzeltmeleri
organization_user_relations
tablosu için kiracıya duyarlı yabancı anahtar kısıtlaması
Sorun
Geliştiriciler başka bir kiracıdan gelen user_id
yi yanlışlıkla bir organizasyona atayabiliyordu, bu da organizasyon kullanıcı API uç noktalarında 500 hatalarına sebep oluyordu. Orijinal organization_user_relations
tablosunda yalnızca users (id)
üzerinde bir yabancı anahtar kısıtlaması vardı, bu da kiracı izolasyonu olmadan varolan herhangi bir kullanıcı kimliğinin atanmasına fırsat veriyordu.
Kök Neden
Logto, bütün tablolarda Kiracı Düzeyinde Güvenlik (RLS) uygular; bu da kiracı verilerine erişimi izole eder. Kullanıcılar tablosu organization_user_relations
ile birleştirildiğinde, RLS kısıtlamaları nedeniyle mevcut kiracıya gerçek kullanıcı verisi erişilemez hale gelir ve kullanıcı verisi null döner, bu da 500 sunucu hataları tetikler.
Çözüm
(tenant_id, user_id)
bileşik yabancı anahtar kısıtlaması users (tenant_id, id)
referans alınarak eklendi; bu sayede organizasyon-kullanıcı ilişkisinin kiracı kimliğinin, kullanıcının kiracı kimliği ile eşleşmesi zorunlu hale geldi. Böylece uygun kiracı izolasyonu veritabanı seviyesinde sağlanıyor.