Analiza post mortem: nieoczekiwana zmiana JWT `iss`
Raport dotyczący incydentu z dnia 2024-03-18 związanego z nieoczekiwaną zmianą JWT `iss`.
Raport dotyczący incydentu z dnia 2024-03-18 związanego z nieoczekiwaną zmianą JWT `iss`.
Dnia 2024-03-18 aktualizacja zmieniająca zachowanie wydawcy JWT w Logto Cloud zakłóciła przepływy autoryzacji dla użytkowników z niestandardowymi domenami i walidacją iss. Naprawa wymagała, aby ci użytkownicy zaktualizowali swoją logikę walidacji.
iss.iss w przepływach autoryzacji.Aktualizacja zmieniła pole iss, by odpowiadało żądanemu lokalowi, psując istniejące walidacje oczekujące poprzedniego domyślnego wydawcy.
iss.Logto Cloud wspiera niestandardowe domeny dla autoryzacji, deweloperzy mający włączone tenenty z niestandardowymi domenami mogą ustawić endpoint na niestandardową domenę w SDK, a końcowy użytkownik użyje tego endpointu do inicjalizacji procesu autoryzacji i uzyskania tokenów. Niektóre tokeny mają formę JWT, która zawiera pole iss wskazujące wydawcę tego tokenu. Wcześniej, nawet gdy używano niestandardowego endpointu domeny do żądania tokenu dostępu, wydawca nadal domyślnie ustawiał się na naszą standardową domenę ([tenant-id].logto.app).
Jednak domena wydawcy powinna być taka sama jak żądany endpoint. Dlatego opublikowaliśmy aktualizację, aby naprawić ten problem, i teraz pole iss automatycznie będzie odzwierciedlać domenę używaną w żądaniu.
Dla tych, którzy już używali niestandardowej domeny do przyznawania tokenów i zaimplementowali walidację pola iss na serwerze zasobów, to mogła okazać się zmiana łamiąca. Istniejąca kontrola autoryzacyjna będzie się nie powodzić z powodu zmiany wydawcy. Aby to naprawić, deweloperzy muszą zmienić kod walidacji, zastąpić oczekiwanego wydawcę na nowego z niestandardową domeną.
Nie udało nam się w pełni rozważyć wpływu na istniejące walidacje iss, w rezultacie to wydanie stało się zmianą łamiącą bez wcześniejszego powiadomienia.
Powiadomiliśmy dotkniętych użytkowników za pomocą e-maili, doradzając im, aby zaktualizowali swoje walidacje iss, aby dopasować się do żądanego lokalizacji.
Zmiana jest konieczną poprawką pola wydawcy, a niektórzy użytkownicy mogą już się dostosować do nowego zachowania. Wycofanie spowodowałoby zamieszanie i niespójność.