Logto v1.43.0, OAuth İstemci Kimliği Meta Verileri Belgeleri ile dinamik uygulamalar, imzalı SAML kimlik doğrulama istekleri, sınırlı Özel JWT ve Eylemler çalışma zamanı, daha güçlü jeton takas doğrulaması ve web kancaları ile kurumsal SSO için genişletilmiş SSRF koruması ekler.
Logto v1.43.0, uygulamalar ve kurumsal kimlik sağlayıcılarının nasıl bağlandığını genişletirken, jetonlar ve dışa yönelik istekler etrafında güvenlik sınırlarını güçlendiriyor. OAuth İstemci Kimliği Meta Verileri Belgeleri ile dinamik uygulamalar, imzalı SAML kimlik doğrulama istekleri ve Özel JWT ile Eylemler için birleştirilmiş bir çalışma zamanı sunar. Bu sürüm ayrıca jeton takasını, web kancalarını ve kurumsal SSO'yu güçlendiriyor; bunun yanı sıra Hesap Merkezi iyileştirmeleri, İspanyolca (Meksika) desteği ve güvenilirlik hatalarını da içeriyor. İşte yenilikler.
Oturum Açma Deneyimi artık es-MX (İspanyolca, Meksika) desteğine sahip.
Dili İspanyolca (Meksika) olan kullanıcılar için telefon girdileri varsayılan olarak Meksika ülke kodunu (+52) kullanır. Bu sürüm ayrıca liste biçimlendirici yer tutucularını ve İspanyolca yerellerde kalan çevrilmemiş MFA mesajını düzeltir.
Yönetim API'si aracılığıyla yapılandırılan dışa yönelik istekler, artık loopback, özel, link-local, bulut meta verileri veya diğer özel kullanım adreslerine çözümlendiğinde engelleniyor.
Koruma artık şunları kapsar:
Webhook teslimatı, POST /api/hooks/:id/test dahil.
OIDC kurumsal SSO keşfi, jeton ve kullanıcı bilgisi istekleri.
SAML kimlik sağlayıcı meta verisi alma.
Bu isteklerin yaptığı her yönlendirme adımı.
DNS adları bağlantı kurulduğunda kontrol edilir, bu nedenle korunan bir adrese çözümlenen bir ana bilgisayar adına literal bir IP adresi gibi reddedilir.
Birinci taraf konu jetonlarını gerektirmenin yanı sıra, Logto artık access_token konusu olarak sunulan bir JWT'nin gerçekten bir erişim belirteci olduğunu doğruluyor.
JWT şunları içermelidir:
RFC 9068 at+jwt tür başlığı.
Bir client_id claim'i.
OIDC kimlik jetonları ve kiracı tarafından imzalanan diğer JWT'ler artık erişim belirteci olarak kabul edilemez. Geçersiz konu jetonları invalid_grant ile reddedilir.
Üçüncü taraf uygulamalar artık Hesap API'si veya Doğrulama API'si aracılığıyla hesap verilerini değiştiremez. Bu tür istekler artık şunu döndürür:
Birinci taraf uygulamalar, Hesap Merkezi ve Konsol dahil, etkilenmez.
Kimliği çözümlenemeyen istemci kimlikleri için kontrol kapalı kalır. Buna erişim belirteçleri hâlâ etkin olan silinmiş uygulamalar ve kimliği bir meta veri URL'si olan CIMD istemcileri dahildir.
Hiçbir okuma rotası yeni bir doğrudan koruma almadı. Ancak, aşağıdaki okumalar korumalı rotalar aracılığıyla oluşturulan doğrulama kayıtları gerektirir ve bu nedenle artık üçüncü taraf uygulamalar tarafından erişilemez:
GET /api/my-account/grants
GET /api/my-account/sessions
GET /api/my-account/mfa-verifications/backup-codes
Jeton verme ve kullanıcı bilgisi artık askıya alınan kullanıcıları invalid_grant ile reddeder, bu da silinen kullanıcılar için mevcut davranışla eşleşir.
Bu, yenileme jetonu, yetkilendirme kodu, cihaz kodu ve jeton takas akışları genelinde geçerlidir; önceki bir jeton veya oturum iptali başarıyla tamamlanmamış olsa bile.
Üçüncü taraf uygulama kapsamları yeniden doğrulanır#
Bir üçüncü taraf uygulamasının izin yapılandırmasından bir kullanıcı kapsamı kaldırıldığında, artık mevcut izinleri ve yeni yetkilendirme isteklerini etkiler.
Yenileme jetonu takasları artık yapılandırılmayan kapsamları atar.
Mevcut bir izni devam ettiren yetkilendirme istekleri uygun olduğunda invalid_scope ile başarısız olur.
Organizasyon jetonu istekleri, organizasyon kapsamı kaldırıldıktan sonra insufficient_scope ile başarısız olur.
İzin gönderimi, izin ekranı açıkken kaldırılan bir kapsama artık izin vermez.
Sentinel kilitleme sayaçları artık hesap aramasındakiyle aynı normalleştirilmiş tanımlayıcı biçimini kullanır:
E-posta adresleri küçük harfe çevrilir.
Telefon numaraları kanonikleştirilir.
Kullanıcı adları yalnızca kiracının kullanıcı adı politikası büyük/küçük harf duyarsız olduğunda büyük/küçük harf duyarsızlaştırılır.
Bu, aynı tanımlayıcının farklı yazımlarının ayrı deneme kovaları oluşturmasını ve maxAttempts'i zayıflatmasını önler.
Manuel kilit açma, aynı hesabı tanımlayan eşdeğer yazımları da temizler. Güncellendikten sonra, kanonik olmayan bir yazımla kaydedilen mevcut bir kilitleme erken bitebilir, ancak hiçbir kullanıcı önceden olduğundan daha fazla kilitli kalmaz.
Bir kullanıcının üçüncü taraf uygulama yetkilendirmesini iptal etmek artık yalnızca o uygulamanın jetonlarını geçersiz kılıyor. Kullanıcının tarayıcı SSO oturumu aktif kalır.
Eliptik Eğri imzalama anahtarları artık eğrileriyle eşleşen algoritmayı bildirir: P-256 ES256, P-384 ES384 ve P-521 ES512 kullanır.
Anahtar ile oturum açmadan doğrulama kodu ile oturum açmaya geçmek artık kullanıcıların CAPTCHA tamamlamasını engellemez.
OIDC invalid_scope ve insufficient_scope mesajları artık reddedilen kapsamı gösterir, ham {{error_description}} veya {{scope}} yer tutucu yerine.
Safari ve diğer parola yöneticileri artık parola ayarla ve parola sıfırla ekranlarında doğru hesap tanımlayıcısını kullanarak güçlü bir parola önerebilir ve kaydedebilir.
Boşluk içeren Accept-Language kalite değerleri, ör. en; q=0.7, artık doğru şekilde ayrıştırılıyor. Geçersiz kalite değerleri, NaN üretmek yerine güvenli bir şekilde geri döner.
Gmail özel izin verilen ve engellenen liste eşleştirmesi artık gmail.com ve googlemail.com'u eşdeğer kabul ediyor ve yerel kısımdaki noktaları yok sayıyor.
Konsol artık özel e-posta kuralları için daha net örnekler, açıklamalar ve daha kısa yer tutucular sunuyor.
Hesap Merkezi veya kayıt ayarlarını kaydetmek artık var olmayan özel profil alanlarına yapılan referansları düşürüyor ve custom_profile_fields.entity_not_exists_with_names döndürmüyor.
Silinen alanlar, izin kontrolü kapalı olduğunda bile Konsol'dan çıkarılabilir durumda kalır.
Yönetim API ilişki uç noktaları artık boş kapsam veya rol dizilerini 500 hatası döndürmek yerine no-op olarak kabul eder. Buna şu uç noktalar dahildir:
POST /applications/:applicationId/user-consent-scopes
POST /organizations/:id/users/:userId/roles
Tarih doğrulaması artık tüm girişi eşleştirir ve aksi halde geçerli bir tarihten sonra gelen karakterleri reddeder.
Microsoft Azure AD bağlayıcısı artık bir disableEmailSync seçeneğini destekler.
Varsayılan olarak, bağlayıcı Microsoft Graph mail niteliğini Logto kullanıcı profiline kopyalamaya devam eder. Bağlayıcı kullanıcının kimliğini o adresi senkronize etmeden doğrulamalıysa bu seçeneği etkinleştirin; mevcut Azure OIDC kurumsal SSO için mevcut kontrol ile eşleşir.
İşlem gerekiyor — dışa yönelik istek koruması: Webhooklar veya kurumsal SSO bağlayıcıları kasıtlı olarak özel bir ağdaki hizmetlere erişiyorsa, yükseltmeden önce gerekli IP adreslerini veya CIDR aralıklarını SSRF_ALLOWED_ADDRESSES'e ekleyin:
Sadece gerekli hedefleri izin listesine almak, korumayı tamamen devre dışı bırakmaktan daha güvenlidir.
Dinamik uygulama uyumluluğu: SSRF_ALLOWED_ADDRESSES'i yapılandırmak CIMD'yi devre dışı bırakır; böylece kimliği doğrulanmamış dinamik istemciler izin listesiyle özel hizmetlere erişemez. SSRF_PROTECTION_DISABLED=true ayarlamak da CIMD'yi devre dışı bırakır.
Yapılandırma uyumluluğu: OIDC_PROVIDER_SSRF_PROTECTION_DISABLED hâlâ SSRF_PROTECTION_DISABLED için bir takma ad olarak desteklenir. Bu değişkenler yalnızca self-hosted kurulumlarda geçerlidir.
Betik çalışma zamanı sınırları: Özel JWT ve Eylem betikleri 5 saniye içinde tamamlanmalı, 128 MB çalışan bellek bütçesinin içinde kalmalı ve JSON-uyumlu değerler döndürmelidir.
Veritabanı geçişi gerekiyor: Bu sürüm yeni şema değişiklikleri ve indeksler ile gelir. Yükselttikten sonra, yeni sürümü başlatmadan önce veritabanı değişiklik komutunu (@logto/cli/core imajında npm run alteration deploy veya logto db alteration deploy) çalıştırın. Ayrıntılar için yükseltme kılavuzuna bakın.