• wydanie

Aktualizacje produktu Logto

Logto v1.40.0 wprowadza selektor zakresu czasowego dla dzienników audytu, bogatsze ładunki webhooków członkostwa w organizacji, znaczne poprawki wydajności dla dużych organizacji oraz kilka ulepszeń poprawiających komfort korzystania z samodzielnego hostowania.

Yijun
Yijun
Developer

Przestań tracić tygodnie na uwierzytelnianie użytkowników
Uruchamiaj bezpieczne aplikacje szybciej z Logto. Zintegruj uwierzytelnianie użytkowników w kilka minut i skup się na swoim głównym produkcie.
Rozpocznij
Product screenshot

Logto v1.40.0 to wydanie wzmacniające platformę. Dzienniki audytu stają się użyteczne na dużą skalę, webhooki członkostwa organizacji pokazują dokładnie, co się zmieniło, zapytania do organizacji przyspieszają dla dużych najemców, a kilka uciążliwych problemów przy samodzielnym hostowaniu zostało wyeliminowanych. Dostępne są też trzy nowe konektory. Oto, co nowego.

Dzienniki audytu, które można faktycznie filtrować

Dzienniki audytu są najbardziej przydatne, gdy coś właśnie się wydarzyło — do tej pory Konsola pobierała nieograniczone okno, co spowalniało wszystko u najemców z dużą ilością logów.

To wydanie dodaje wybierak zakresu czasu na stronie dzienników audytu, domyślnie ustawiając ostatnie 7 dni. Możesz wybrać jeden z gotowych zakresów (Ostatnia 1 godzina, Ostatnie 24 godziny, Ostatnie 7 dni, Ostatnie 30 dni) lub własny zakres dat, a starsze logi pozostają dostępne po prostu poprzez poszerzenie okna (#8810).

W tle, Management API zyskuje parametry zapytań start_time i end_time w GET /api/logs oraz GET /api/hooks/{id}/recent-logs (wyłączając granice, w milisekundach Unix), więc możesz programowo filtrować logi (#8806). Dla największych najemców nowy parametr enableCap=true skraca zapytanie zliczające do ~10 000 wierszy i zwraca nagłówek Total-Number-Is-Capped: true, rezygnując z dokładnej sumy na rzecz odpowiedzi, która nie powoduje statement_timeout; Konsola przełącza się na układ Poprzedni/Dalej po osiągnięciu limitu (#8796, #8802). Domyślnie, bez tego parametru, zachowanie pozostaje bez zmian.

Webhooki członkostwa organizacji teraz pokazują, co się zmieniło

Webhook Organization.Membership.Updated pokazywał że członkostwo się zmieniło, ale nie co się zmieniło. Teraz przenosi jawne pola różnic — addedUserIds / removedUserIds oraz addedApplicationIds / removedApplicationIds — w różnych punktach końcowych, plus addedUserIds przy akceptacji zaproszenia i provisioning na żądanie (domena e-mail oraz JIT SSO dla przedsiębiorstw) (#8840).

To jest w pełni dodatkowe i niepsujące istniejącej funkcjonalności: puste różnice są pomijane, a każda tablica ograniczona jest do 5000 pozycji przy operacjach masowych (gdy przekroczysz, sprawdź przez GET /organizations/:id/users lub .../applications). Zobacz dokumentację webhooka po pełny opis. Te zmiany zastępują wcześniejszą propozycję społeczności — podziękowania dla @chiche84 (#8752).

Przy okazji prac nad sesjami, GET /api/my-account/sessions także zyskało flagę isCurrent dla każdego wpisu, dzięki czemu UI zarządzania sesjami może oznaczyć wiersz "To urządzenie" i uniknąć odwołania aktualnej sesji użytkownika (#8731).

Organizacje, które pozostają szybkie w miarę wzrostu

Kilka zmian skierowano do najemców z bardzo dużymi organizacjami:

  • GET /organizations/:id/users teraz agreguje role przez podzapytanie LATERAL, więc LIMIT ogranicza zestaw użytkowników przed pobieraniem ról — zamiast materializować całą relację członkowie × role dla każdego stronnicowanego żądania (#8826).
  • Dwa nowe indeksy przyspieszają zapytania wsteczne: jeden na organization_user_relations (tenant_id, user_id), używany przy każdym logowaniu i przez middleware członkostwa (#8818), oraz jeden na organization_role_user_relations (tenant_id, organization_id, user_id), wykorzystywany w getUserScopes i przy łączeniu ról z użytkownikami (#8819).
  • PUT /organizations/:id/users przechodzi na nową zapytanie oparte na różnicach, które aktualizuje tylko zmienione wiersze zamiast przepisywać całą tabelę członkostwa za każdym razem — i zachowuje role dla członków, którzy pozostali po aktualizacji (#8820).

Konto i ulepszenia logowania

  • Zgoda na rejestracji z logowania. Gdy polityka akceptacji to "wymagać zaznaczenia przy rejestracji", logowanie adresem e-mail lub telefonem niepowiązanym z kontem i wybór "utwórz nowe konto" wymusza teraz akceptację warunków przed utworzeniem konta — jest to spójne z oddzielną rejestracją i przepływem społecznościowym/SSO (#8835).
  • Ustawianie początkowego hasła. Użytkownicy bez hasła, e-maila lub telefonu mogą teraz ustawić pierwsze hasło przez Account API bez potwierdzenia (#8746).
  • Ciche ponowne uwierzytelnianie. Przy błędzie user-info — np. przeterminowany token po zmianie użytkownika w tej samej przeglądarce — Centrum Kont automatycznie uwierzytelnia z prompt=none zamiast przekierowywać do ekranu logowania, dzięki @taka-guevara (#8785).
  • Czystsze wygasanie sesji i powroty społecznościowe. Wygasłe sesje Account Center przekierowują bez migotania ręcznego błędu (#8830), callback społecznościowy odczytuje teraz poprawnie connectorId (#8758), a podpis przy przełączniku weryfikacji dwuetapowej jest jaśniejszy (#8792).
  • i18n. Poprawiono chińskie tłumaczenie "Passkey" w zwrotach MFA, dzięki @rotempasharel1 (#8870).

Nowe i ulepszone konektory

Ta wersja dodaje trzy konektory oraz ulepsza kilka innych — część z nich pochodzi od społeczności:

  • MailJunky konektor e-mail do autoryzacji transakcyjnej, dostarczony przez @devadarshh (#8638).
  • SMSBao konektor SMS do krajowej weryfikacji SMS, dostarczony przez @wintbiit (#8871).
  • Usługa uwierzytelniania SMS Aliyun – konektor dostarczony przez @CertStone (#8385).
  • Aliyun Direct Mail obsługuje teraz konfigurowanie regionu Direct Mail (#8892).
  • WeCom pobiera bogatszy profil użytkownika poprzez dodatkowe wywołania API, dzięki @liyujun-dev (#8191).
  • SMTP auth może teraz pomijać parametry user i pass, więc serwery relay autoryzujące po źródle (np. IP/VLAN) nie wymagają podawania danych (#8888).
  • Connector Kit poprawiono wykrywanie URL w brandingu e-mailowym, by uniknąć fałszywych trafień na skrótach z kropką, dzięki @aayushbaluni (#8747).

Dla użytkowników samodzielnego hostowania

Kilka zmian dedykowanych płynnym wdrożeniom OSS:

Konfiguracja admina offline. Polecenia install i db seed obsługują teraz flagę --dapc (alias --disable-admin-pwned-password-check). Domyślna polityka haseł admina wymaga sprawdzenia naruszenia zabezpieczeń Have I Been Pwned, co powoduje wywołanie do api.pwnedpasswords.com przy każdym podaniu hasła admina — i zawiesza pierwszy proces rejestracji admina, jeśli serwis jest nieosiągalny. Flaga --dapc powoduje zasiew polityki bez tego sprawdzenia, dzięki czemu rejestracja admina nie wymaga już połączenia z siecią. (Podziękowania @darcyYe, #8859)

Klucze podpisujące admina z bazy danych. Instancje OSS odczytują teraz klucze podpisujące najemcy admina bezpośrednio z bazy danych, eliminując potrzebę dodatkowego mapowania hosta/DNS, która umożliwiała pobranie konfiguracji OIDC tenanta poprzez zewnętrzny endpoint (#8869).

Wymagana migracja. v1.40.0 wprowadza zmiany w schemacie bazy danych (nowe indeksy relacji organizacyjnych i dodatkowe kolumny wewnętrzne). Po pobraniu nowej wersji, uruchom krok zmiany bazy danych przed startem serwera. Szczegóły znajdziesz w przewodniku aktualizacji.

Do dzieła

Gotowy na aktualizację? Zajrzyj do przewodnika aktualizacji po instrukcje krok po kroku.

Pełną listę zmian znajdziesz na stronie wydań GitHub.

Masz pytania albo uwagi? Dołącz do nas na Discordzie lub zgłoś problem na GitHubie.