• release

Обновления продукта Logto

Logto v1.41.0 приносит контроль доступа на уровне приложений, политики истечения срока действия паролей, серьезные улучшения Центра аккаунта, настраиваемые правила для имен пользователей и кодов подтверждения, более безопасную доставку сообщений и усиленную защиту протоколов/безопасности.

Sijie
Sijie
Developer

Хватит тратить недели на аутентификацию пользователей
Запускайте безопасные приложения быстрее с Logto. Интегрируйте аутентификацию пользователей за считанные минуты и сосредоточьтесь на вашем основном продукте.
Начать
Product screenshot

Logto v1.41.0 — это релиз, ориентированный на контроль и безопасность. Он предоставляет командам более тонкие способы управлять доступом к каждому приложению, более широкие возможности управления жизненным циклом паролей и значительно улучшенный Центр аккаунта для конечных пользователей. Кроме того, ужесточены правила доставки кодов подтверждения, добавлены новые требования к именам пользователей, улучшена работа с протоколами SAML/OIDC, защита от повторного использования MFA и оптимизированы сценарии обновления для self-hosting. Вот что нового.

Контроль доступа на уровне приложений

Теперь вы можете ограничивать доступ к приложению напрямую из Logto. Правила доступа могут быть ориентированы на конкретных пользователей, роли пользователей, организации или организационные роли.

Если пользователь не соответствует заданным условиям, Logto блокирует процесс входа или доступа к приложению с помощью страницы "Доступ запрещен", а не позволяет запросу пройти дальше. Это облегчает развертывание приложений, управление доступом для конкретных клиентов, защиту внутренних инструментов и создание организации с ограниченным доступом без необходимости реализовывать всю логику в вашем приложении.

Полный процесс настройки смотрите в документации по контролю доступа на уровне приложений.

Политики истечения срока действия пароля

Теперь консоль поддерживает политики истечения паролей на уровне арендатора в разделе Безопасность > Политика паролей.

Администраторы могут включить истечение пароля, задать количество дней действия пароля и вручную истечь пароль конкретного пользователя на странице сведений о пользователе. Когда пароль истекает, пользователь должен сбросить его с помощью настроенного метода восстановления, чтобы продолжить вход по паролю.

SSO и вход с помощью ключа доступа не затрагиваются. Для существующих пользователей без записанного времени изменения пароля Logto устанавливает отправную точку на момент включения политики, чтобы пользователи могли воспользоваться полным сроком действия, а не сразу получить просроченный пароль.

Центр аккаунта с расширенными функциями самообслуживания

Центр аккаунта продолжает развиваться в полноценную самообслуживаемую панель управления идентичностью.

В этой версии добавлены управление сессиями, просмотр подключённых сторонних приложений, управление профилем, загрузка аватара, загрузка аватара во время регистрации с заполнением профиля, независимый контроль ключей доступа и пользовательская настройка приглашения на вход с помощью ключа доступа.

Профиль в Центре аккаунта, пользовательские поля профиля при регистрации и конечные точки загрузки аватаров теперь также больше не ограничены только для разработчиков.

Также были исправлены несколько важных моментов:

  • Тема, платформа и фирменный цвет применяются до гидратации для снижения эффекта "мигания" интерфейса.
  • Повышенная верификация теперь ограничена только записями подтверждения разрешений пользователя.
  • Социальные аккаунты можно связывать без пароля, электронной почты или номера телефона, если у пользователя нет устаревших методов проверки безопасности.
  • Редактирование имени пользователя в консоли теперь перенаправляется в Центр аккаунта для завершения необходимой проверки.

Политики по имени пользователя и коду подтверждения

Теперь правила для имен пользователей на уровне арендатора настраиваются в разделе Консоль > Вход > Регистрация и вход > Дополнительные параметры.

Политика охватывает чувствительность к регистру, ограничения по длине и допустимые типы символов. Она применяется ко всем действиям пользователя над своим именем, включая регистрацию, заполнение профиля, Центр аккаунта, Account API и /me.

Переход на регистронезависимые имена пользователей защищен: Logto проверяет существующие имена, отличающиеся только регистром, и блокирует изменение политики до разрешения конфликтов. OIDC поле preferred_username теперь также возвращает username пользователя, если profile.preferredUsername не задано.

Управление отправкой кодов подтверждения также перенесено в настройки безопасности Консоли. Администраторы могут настраивать срок действия кода подтверждения и максимальное количество попыток ввода.

Более безопасная доставка сообщений

Logto теперь применяет системное ограничение скорости отправки сообщений для каждого получателя по всем каналам валидации email/SMS, приглашений, включая Experience, MFA, Account API, Management API, /me, организационные приглашения и устаревший Interaction API.

В случае ограничения скорости отправки Logto генерирует событие webhook Message.RateLimited, которое теперь можно выбрать в настройках webhook в Консоли.

Доставка кодов подтверждения неизвестным получателям также подавляется при отключенной регистрации, что снижает риск появления базы логинов через подбор.

Настройка JWT и улучшения API

Для access token JWT в organization API теперь доступен context.organization с целевыми атрибутами организации: id, name, description и customData.

Это облегчает добавление claim для каждой организации без необходимости вкладывать всю карту организаций в каждый токен.

Также было внедрено несколько улучшений API:

  • POST /api/applications/:applicationId/roles теперь идемпотентен. Существующие идентификаторы ролей игнорируются вместо возврата 422 application.role_exists.
  • Эндпойнт теперь возвращает 201 с { roleIds, addedRoleIds } — похоже на схему назначения ролей пользователям.
  • Создание ролей организации с начальными scope теперь транзакционно: если совпадают некорректные ID scope, больше не остаётся частично созданных ролей.

Усиление протоколов и безопасности

В этот релиз включён блок правок, направленных на повышение защищенности протоколов и безопасности:

  • Формы автоотправки SAML IdP теперь экранируют значения HTML-атрибутов и отклоняют нестандартные action URL (не HTTP(S)).
  • Используется обновлённый samlify версии ^2.13.0 для лучшего экранирования XML в создаваемых SAML-assertion.
  • Проверка TOTP MFA отклоняет повторно отправленные коды одного или более старого счетчика времени.
  • Теперь OIDC запросы с null-байтами возвращают 400 invalid_request.
  • Payload для журналов аудита избавляется от null-байтов при сохранении.
  • Проверка на Blacklist email-субадресов больше не компилирует регулярные выражения из пользовательского ввода.
  • Logto Tunnel предотвращает чтение статических файлов вне заданного пути Experience.

Также внесены корректировки для совместимости и хранения: старые Safari и iOS 15 больше не вылетают на старте из-за несовместимого синтаксиса regex lookbehind, коннекторы OIDC enterprise могут получать discovery-конфигурации от провайдеров, которые не поддерживают обмен только JSON, а сбои загрузки пользовательских UI-ассетов через Azure Blob теперь обрабатываются как ошибки, допускающие повторную загрузку.

Новые и улучшенные коннекторы

В этот релиз добавлено и улучшено несколько возможностей, связанных с коннекторами:

  • Новый email-коннектор SMTP2GO для отправки транзакционных auth-писем через SMTP2GO Send API.
  • Поддержка коннектора QQ для верификации социальной идентичности с сохранённым redirect URI.
  • Обновление SAML-коннектора для работы с новым samlify и его строгими типами возврата.
  • Connector Kit теперь экспортирует утилиты разбора и форматирования SMTP-почтового ящика, которые используются также MailJunky.

Для пользователей self-hosting

Для версии v1.41.0 требуется миграция базы данных. В релиз вошли изменения схемы для поддержки истечения паролей, политики по именам пользователя, политик по кодам подтверждения, индексов ограничения скорости для сообщений, дефолтов Центра аккаунта и индексов журналов сервисов.

После обновления выполните команду изменения базы данных до запуска новой версии. За подробностями обратитесь к гиду по обновлению.

Переменная окружения CASE_SENSITIVE_USERNAME больше не рекомендуется к использованию. Она продолжает работать как временный override, но теперь чувствительность имени пользователя к регистру должна настраиваться индивидуально на уровне арендатора через новую политику имени. Переменная будет удалена в следующем мажорном релизе.

Начните прямо сейчас

Готовы обновиться? Ознакомьтесь с гидом по обновлению для пошаговых инструкций.

Полный список изменений доступен на странице релиза GitHub.

Есть вопросы или обратная связь? Присоединяйтесь к нам на Discord или создайте issue на GitHub.