Logto v1.42.0, özel alan doğrulama dosyaları, joker desenlerle e-posta izin listeleri, şifre sıfırlama sihirli bağlantıları, Grant.LimitExceeded webhook'u ve protokol katmanında node-oidc-provider v9, Koa 3 ve varsayılan olarak etkin SSRF koruması getiriyor.
Logto v1.42.0, alan adı ve protokol ağırlıklı bir sürümdür. Takımlara, yeni bir host kurmadan alan adı sahipliğini kanıtlama, bir kiracıya hangi e-postaların katılabileceğini daha ince ayarlama ve son kullanıcılar için daha sorunsuz bir şifre sıfırlama yolu sağlar. Alt yapıda, Logto'yu node-oidc-provider v9 ve Koa 3'e taşıyor ve giden OIDC talepleri için SSRF korumasını varsayılan olarak etkin hale getiriyor. Yenilikler şöyle:
Üçüncü taraf hizmetler genellikle alan adının size ait olduğunu doğrulamak için sabit bir yolda küçük bir dosya sunmanızı ister. Şimdiye kadar bu, Logto özel alan adınızın yanında ayrı bir host çalıştırmayı gerektiriyordu.
Artık Konsol > Kiracı ayarları > Alan adları üzerinden etkin bir özel alan adına doğrulama dosyaları ekleyebilirsiniz. Her dosyanın şunları vardır:
Bir kök seviye dosya adından oluşan bir yol (ör. /verify.txt) veya /.well-known/ altında bir yol.
İçerik türü olarak text/plain veya application/json. JSON içeriklerin kaydedilirken doğrulanır.
16 KB'ye kadar içerik.
Alan başına en fazla 10 dosya yapılandırılabilir ve yollar benzersiz olmalıdır. Logto, tam olarak GET ve HEAD eşleşmelerini yapılandırılmış içerik türü ve güçlendirilmiş yanıtla sunar. Mevcut Logto rotaları, aynı yoldaki bir doğrulama dosyasına karşı her zaman önceliklidir; bu nedenle hatalı yapılandırılmış bir dosya hiçbir zaman gerçek bir endpoint'i gölgelemez. Konsol deneyimi tüm desteklenen dillerde yerelleştirilmiştir.
Logto dosya içeriğine dokunmadığı için, herhangi bir sağlayıcının doğrulama şemasında çalışır; Logto'nun sağlayıcıya özel bir davranışa ihtiyaç duymasına gerek kalmaz.
E-posta erişim kuralları: izin listesi ve joker desenler#
E-posta engelleme politikası, Konsol > Güvenlik > E-posta engel listesi üzerinden yapılandırılan daha kapsamlı bir e-posta erişim kurallarına dönüştü.
Özel e-posta izin listesi. E-posta adresleri, alan adları veya joker desenleri içeren bir izin listesi oluşturun. İzin listesi ayarlanmışsa, yeni kayıtlarda ve yeni eklenen e-postalarda — hem e-posta kaydında hem hesap e-posta güncellemelerinde — yalnızca eşleşen e-postalar kabul edilir.
Joker desenler. İzin listesi ve engel listesi; foo*@example.com, *@example.com ve @*.example.com gibi joker adres ve alan adı desenlerini yanı sıra tam adresleri ([email protected]) ve alan adlarını (@example.com) kabul eder.
Çakışma uyarıları. Bir izin listesi girdisi aynı zamanda bir engelleme kuralı ile eşleştiğinde, izin listesi girdisi artı işareti kullanırken e-posta alt adresleme engellenmişse ve tüm kurallar birleştiğinde hiçbir yeni e-postanın kabul edilmeyeceği durumda Konsol uyarı verir.
Eşleşme ve doğrulama mantığı, @logto/core-kit içindeki yeniden kullanılabilir yardımcılarla paylaşılır; böylece bir e-posta bir kiracıya nereden girerse aynı kurallar geçerli olur.
Deneyim uygulaması artık doğrulama kodlarının yanı sıra şifre sıfırlama açılış sayfasından doğrudan tek kullanımlık jeton doğrulayan sihirli bağlantılar destekler.
Bir uygulama azami izin hakkı limitini aştığı için OIDC yetkileri iptal edildiğinde, Logto artık Grant.LimitExceeded webhook etkinliği tetikler; diğer etkinlikler gibi Konsol webhook ayarlarından seçilebilir.
Yükte userId, applicationId, revokedGrantIds, maxAllowedGrants ve preRevocationActiveGrantCount raporlanır. Gönderim "ateşle ve unut": başarısızlıklar TriggerHook.Grant.LimitExceeded denetim kayıtlarına yazılır ve asla kimlik doğrulama yanıtını engellemez.
Buradaki en büyük değişiklik, token iptalinde bir güvenlik düzeltmesidir.
Artık opak bir erişim jetonu iptal edildiğinde aynı izinde yer alan tüm jetonlar, yenileme jetonu dahil, iptal edilir. v8'de, yenileme jetonu iptalden sonra da kullanılabilir kalıp yeni erişim jetonları isteyebiliyordu.
v9'da diğer protokol güncellemeleri:
İptal son noktası, artık v8'de olduğu gibi bir başarı yanıtı döndürmek yerine, JWT erişim jetonlarını unsupported_token_type ile reddeder.
RFC 8414 yetkilendirme sunucusu meta veri uç noktası /oidc/.well-known/oauth-authorization-server adresinde mevcut.
Fazladan at_hash claim'i, token uç noktasında verilen ID tokenlerinden kaldırıldı.
ID tokenler artık isteğe bağlı typ: "JWT" başlığını içermez; OpenID Connect ID tokenlerini JWT olarak tanımlar ve istemcilerin bu başlığı doğrulamasını gerektirmez.
Özel ID token doğrulama için eylem gerekli. Resmî Logto SDK'sı kullanıldığında bir işlem gerekmez. Entegrasyonuz özel ID token doğrulaması yapıyorsa, at_hash claim'i ve typ: "JWT" başlığının eksik olmasına izin verecek şekilde güncelleyin.
Logto artık aktif olarak korunan Koa'nın güvenlik düzeltmelerini öncelikli alan Koa 3'te çalışır. Davranış değişikliği beklenmiyor; tüm uç noktalar, OIDC akışları ve API yanıtları öncekilerle aynıdır.
İç uygulama sırları artık Yönetim API'leri üzerinden ifşa edilmiyor.
E-posta engel listesi politikası, artık herkese açık oturum açma yanıtlarında döndürülmüyor.
Hesap API'si üzerinden depolanan üçüncü taraf sağlayıcı erişim jetonlarını almak artık diğer sosyal ve kurumsal SSO kimlik uç noktalarına uygun şekilde identities kullanıcı kapsamı gerektiriyor.
Hesap API doğrulama kodları artık engellenmiş e-posta adreslerine gönderilmiyor.
E-posta ve e-posta alan adı doğrulaması artık tam değerlerle eşleşiyor ve daha katı alan etiketleri zorunlu kılıyor.
Bir sosyal veya SSO kayıt akışı e-posta erişim kuralları nedeniyle reddedildiğinde, hatayı onaylamak artık kullanıcıyı harici kimlik sağlayıcısına yönlendirmek yerine Logto oturum açma sayfasına döndürür.
Bir kullanıcı Hesap API'leri ile bir MFA faktörü bağladıktan sonra MFA otomatik olarak etkinleştirilir.
Yeni bir e-posta veya SMS bağlayıcısı oluşturmak, eklemeyi ve eski bağlayıcıların temizliğini tek bir veritabanı işlemiyle çalıştırır. Önceden iki sorgu arasındaki bir çökme yinelenen bağlayıcılar bırakabiliyordu.
Redis küme kimlik bilgileri artık yüzde kodu çözülerek iletilir; böylece kullanıcı adı veya şifre URL'ye ayrılmış karakterler içerdiğinde bağlantı başarılı olur.
rediss protokolü kullanan Redis küme bağlantılarında artık TLS doğru şekilde etkinleştiriliyor.
jose v6: Apple, Google, OAuth ve OIDC bağlayıcıları, Node'un crypto modülü yerine Web Crypto API üzerinde çalışan jose 6'yı kullanır. Jeton imzalama ve ID token doğrulama davranışı öncekiyle aynıdır.
GitLab: Kullanılmayan jose bağımlılığı kaldırıldı; artık bağlayıcıyı kurmak, hiç dahil edilmeyen bir paketi kurmuyor.
Aliyun SMS: Hong Kong telefon numaraları artık yurtdışı numaralar olarak ele alınıyor.
Aliyun SMS kimlik doğrulama hizmeti (MAS): İmza artık açılır menü yerine serbest metin olarak giriliyor, böylece Aliyun imzaları tekrar değiştirirse çalışmaya devam ediyor.
Eylem gerekli — OIDC sağlayıcı SSRF koruması. Giden istek güvenliği güçlendirildi ve SSRF koruması artık varsayılan olarak etkin. Güvenilir müşteri uç noktalarına ulaşması gereken kendi sunucusunda kurulumlar, Logto başlamadan önce OIDC_PROVIDER_SSRF_PROTECTION_DISABLED=true ayarını yapmalı; aksi halde değişken tanımsız bırakılmalı.
Veritabanı değişikliği gerekli. Bu sürüm; özel alan doğrulama dosyaları, dahili dizinler ve tablolar için şema değişiklikleri içerir. Yükselttikten sonra, yeni sürümü başlatmadan önce veritabanı değiştirme komutunu (npm run alteration deploy@logto/cli/core görüntüsünde veya logto db alteration deploy) çalıştırın. Ayrıntılar için yükseltme kılavuzuna bakın.
Özel ID token doğrulama. Yukarıda node-oidc-provider v9 bölümüne bakın: at_hash ve typ başlık değişiklikleri için.