Aktualizacje produktu Logto
Logto v1.39.0 jest już dostępny – wprowadza bezpieczniejszą rotację kluczy podpisujących, inteligentniejsze obsługiwanie błędów skryptów JWT, rozszerzone kontrolki bezpieczeństwa w Centrum Konta, obsługę konektora WhatsApp oraz kluczowe ulepszenia związane z bezpieczeństwem.
Z radością przedstawiamy Logto v1.39.0 — wydanie skupiające się na wzmocnieniu bezpieczeństwa operacyjnego, elastyczniejszym dostosowaniu tokenów oraz ulepszeniu bezpieczeństwa kont użytkowników końcowych. Ta wersja dodaje okres karencji podczas rotacji prywatnych kluczy podpisujących, konfigurowalną obsługę błędów dla własnych skryptów JWT, nową stronę bezpieczeństwa w Centrum Konta, obsługę konektora WhatsApp przez Meta Cloud API oraz szereg poprawek bezpieczeństwa i niezawodności w przepływach uwierzytelniania.
Najważniejsze zmiany
- Okres karencji rotacji prywatnego klucza podpisującego: Logto obsługuje teraz okres karencji przy rotacji prywatnych kluczy podpisujących, pomagając klientom odświeżyć pamięć podręczną JWKS bez przestojów.
- Obsługa błędów własnych skryptów JWT: Dostosowywanie JWT access tokena i client credentials może teraz blokować wydawanie tokenów, jeśli skrypty nie powiodą się.
- Strona bezpieczeństwa Centrum Konta: Użytkownicy końcowi mogą teraz zarządzać powiązaniem kont społecznościowych, MFA i usunięciem konta z poziomu Centrum Konta.
- Konektor WhatsApp: Nowy konektor SMS WhatsApp jest dostępny poprzez Meta Cloud API.
- Poprawki bezpieczeństwa i kompatybilności: Odpowiedzi weryfikacji zapomnianego hasła zostały ujednolicone, by zmniejszyć ryzyko enumeracji kont, a przekierowania do logowania społecznego/SSO w aplikacjach są bardziej odporne.
Nowe funkcje i usprawnienia
Okres karencji rotacji prywatnego klucza podpisującego
Logto obsługuje teraz okres karencji podczas rotacji prywatnego klucza podpisującego.
Można go skonfigurować poprzez:
- Zmienną środowiskową
PRIVATE_KEY_ROTATION_GRACE_PERIOD. - Opcję CLI
--gracePeriod.
W czasie okresu karencji:
- Nowo wygenerowany klucz podpisujący oznaczony jest jako Następny.
- Dotychczasowy klucz podpisujący pozostaje aktywny jako Aktualny.
- Klienci mają czas na odświeżenie pamięci podręcznej JWKS, zanim nowy klucz stanie się aktywny.
Po zakończeniu okresu karencji:
- Nowy prywatny klucz podpisujący przechodzi na status Aktualny.
- Stary klucz podpisujący oznaczony jest jako Poprzedni.
Zapewnia to płynny proces rotacji kluczy i pomaga uniknąć awarii uwierzytelniania spowodowanych nieaktualną pamięcią podręczną JWKS.
Dokumentacja: Rotacja kluczy podpisujących
Obsługa błędów własnych skryptów JWT
Logto obsługuje teraz konfigurowalną obsługę błędów dla własnych skryptów JWT używanych przy wydawaniu access tokena oraz client credentials.
Zmiany obejmują:
- Własne skrypty JWT mogą teraz blokować wydanie tokena w przypadku niepowodzenia wykonania.
api.denyAccess()zachowuje odpowiedźaccess_denied.- Inne awarie skryptów w trybie blokującym zwracają zlokalizowane odpowiedzi
invalid_request. - W Konsoli dodano dedykowaną zakładkę Obsługa błędów do konfiguracji zachowania.
- Nowo tworzone skrypty mają domyślnie włączoną opcję
blockIssuanceOnError. - Istniejące skrypty, które nie mają zapisanej wartości, zachowują dotychczasowe wyłączone zachowanie.
- Zaktualizowano odpowiednie wskazówki, frazy, schematy i zakres integracji w Konsoli.
To pozwala deweloperom zdecydować, czy niepowodzenia personalizacji tokena powinny skutkować wydaniem (fail open), czy zablokowaniem (fail closed) procesu w zależności od wymagań bezpieczeństwa.
Strona bezpieczeństwa Centrum Konta
Wydanie to dodaje nową stronę bezpieczeństwa do domyślnego Centrum Konta.
Użytkownicy końcowi mogą teraz zarządzać bezpieczeństwem konta pod /account/security, w tym:
- Powiązaniem i odłączaniem kont społecznościowych.
- Weryfikacją dwuetapową (MFA).
- Usuwaniem konta.
Wsparcie w Konsoli:
- Ustawienia Centrum Konta dla doświadczenia logowania udostępniają teraz pole URL usuwania konta.
- Konsola wyświetla wpisy predefiniowanych interfejsów Centrum Konta i logowania społecznego.
Konektor WhatsApp przez Meta Cloud API
Dodano nowy konektor WhatsApp do wysyłania wiadomości przez Meta Cloud API.
Możliwa jest dzięki temu obsługa scenariuszy dostarczania SMS / kodów weryfikacyjnych przez WhatsApp, z użyciem oficjalnej integracji z Meta Cloud API.
Ciała odpowiedzi API przypisywania organizacji
API przypisywania użytkownika oraz roli organizacji teraz zwracają ciała odpowiedzi.
Zaktualizowane endpointy:
POST /organizations/:id/userszwraca teraz{ userIds: string[] }, zwracając identyfikatory użytkowników podane w żądaniu.POST /organizations/:id/users/:userId/roleszwraca{ organizationRoleIds: string[] }— zawiera końcowe zdupikowane id ról przypisanych do użytkownika, w tym id uzyskane z przekazanych nazw ról.
Aktualizacja tokenu motywu Konsoli
Motywy Konsoli zawierają teraz brakujący token --color-overlay-primary-subtle dla trybów jasnego i ciemnego.
Poprawki błędów i stabilność
Ochrona przed enumeracją przy weryfikacji zapomnianego hasła
Weryfikacja przy odzyskiwaniu hasła teraz zawsze zwraca jednolity błąd verification_code.code_mismatch.
Zapobiega to ujawnieniu, czy dany email lub numer telefonu istnieje, na podstawie zróżnicowanych odpowiedzi błędów.
Przekierowania społecznościowe i SSO w przeglądarkach w aplikacji
Poprawiono niezawodność przekierowań społecznościowych i SSO w przeglądarkach aplikacji, takich jak Instagram, Facebook i LINE.
Niektóre przeglądarki w aplikacji otwierają strony dostawców tożsamości OAuth w nowym WebView, co może powodować utratę sessionStorage po przekierowaniu z powrotem.
To wydanie wprowadza zapasowy mechanizm localStorage:
- Stan przekierowania nadal zapisywany jest w
sessionStorage. - Dodatkowo, w
localStorageprzechowywany jest zapasowy pakiet kontekstu przekierowania. - Przy wywołaniu zwrotnym Logto przywraca stan z
localStorage, jeślisessionStoragejest nieobecny. - Zapasowe wpisy są konsumowane podczas odczytu i automatycznie czyszczone po 10 minutach.
- Jeśli oba miejsca przechowywania są puste, użytkownik widzi powiadomienie o błędzie.
Adres IP w żądaniu konektora kodu weryfikacyjnego
Naprawiono problem, w którym adres IP żądania nie był przekazywany do konektorów przy wysyłaniu kodów weryfikacyjnych.
Pozwala to konektorom otrzymać prawidłowy kontekst żądania dla dostarczenia kodu weryfikacyjnego.

