Postmortem: beklenmedik JWT `iss` değişikliği
2024-03-18 tarihli beklenmedik JWT `iss` değişikliği için olay raporu.
Özet
2024-03-18 tarihinde Logto Cloud'daki JWT verici davranışını değiştiren bir güncelleme, özel alan adları ve iss
doğrulaması olan kullanıcıların kimlik doğrulama akışlarını bozdu. Düzeltme, bu kullanıcıların doğrulama mantığını güncellemelerini gerektirdi.
- Etkilenen kullanıcılar: Özel alan adları etkinleştirilmiş ve
iss
doğrulaması yapan kullanıcılar. - Ciddiyet: Kritik, kimlik doğrulama akışlarında
iss
doğrulamasını bozucu.
Kök neden
Güncelleme, iss
alanını talep edilen alan adıyla eşleşecek şekilde değiştirdi ve mevcut doğrulamaların beklediği önceki varsayılan vericiyi bozdu.
Zaman Çizelgesi
- 2024-03-18 10:00 (UTC):
iss
davranışını değiştiren güncellemeler dağıtıldı. - 2024-03-18 23:30 (UTC): Mevcut davranışın bozulduğu ilk kullanıcı raporu alındı.
- 2024-03-19 12:00 (UTC): Sorun doğrulandı ve araştırmaya başlandı.
- 2024-03-19 14:00 (UTC): Kök neden ve etki belirlendi.
- 2024-03-20 20:00 (UTC): Etkilenen kullanıcılara gönderilecek e-posta hazırlandı.
- 2024-03-20 06:00 (UTC): Etkilenen tüm kullanıcılara e-postalar gönderildi.
Etki Analizi
Sürüm Detayları
Logto Cloud, kimlik doğrulama için özel alan adını destekler, özel alan adı etkinleştirilmiş kiracılara sahip geliştiriciler SDK'larda uç noktayı özel alan adına ayarlayabilir, ardından son kullanıcı kimlik doğrulama sürecini başlatmak ve jeton almak için bu uç noktayı kullanır. Bazı jetonlar, bu jetonun vericisini gösteren bir iss
alanı içeren JWT formundadır. Daha önce, erişim jetonu talep etmek için özel alan adı uç noktası kullanılsa da, verici hala varsayılan alanımız ([tenant-id].logto.app
) olarak kalırdı.
Ancak vericinin alan adı, talep edilen uç noktayla aynı olmalıdır. Bu sorunu düzeltmek için bir güncelleme yayınladık ve şimdi iss
alanı talepte kullanılan alan adını otomatik olarak yansıtacak.
Özel alan adı kullanarak jeton veren ve kaynak sunucuda iss
alanı doğrulaması gerçekleştirenler için bu değişiklik bozucu olabilir. Mevcut kimlik doğrulama kontrolü, vericinin değişikliği nedeniyle başarısız olacak. Bunu düzeltmek için geliştiricilerin doğrulama kodunu değiştirmesi, beklenen vericiyi özel alan adı ile yeni olanla değiştirmesi gerekir.
Mevcut iss
doğrulamalarına etkisini tam olarak düşünemedik, bunun sonucunda bu sürüm önceden bildirim yapılmadan bozucu bir değişiklik haline geldi.
Çözüm
Etkilenen kullanıcılara e-posta yoluyla bildirimde bulunuldu, iss
doğrulamalarını talep edilen alan adıyla eşleşecek şekilde güncellemeleri tavsiye edildi.
Geri Alma?
Değişiklik, verici alanı için gerekli bir düzeltmedir ve bazı kullanıcılar yeni davranışa çoktan uyum sağlamış olabilir. Geri alma kafa karışıklığına ve tutarsızlığa neden olacaktır.
Alınan Dersler
- Temel kimlik doğrulamasını etkileyen kod değişiklikleri, normal incelemelere ek olarak ekip tarafından onaylanmalıdır.
- Otomatik testler daha fazla vakayı, özellikle bulut tabanlı senaryoları kapsamalıdır.
Düzeltici ve önleyici tedbirler
- Entegrasyon testleri ekle: Bu olaydaki senaryoyu kapsamak için test vakaları ekle.
- Özellik izleme projeleri: Logto Cloud'a ek olarak, kendi yan projelerimizi oluşturun ve Logto ile derinlemesine entegre edin, sürümlerden önce olası sorunları yakalayın.