Обновления продукта Logto (август 2024)
Исследуйте наше августовское обновление 2024 года, включающее подмену пользователя, управление секретами приложений, брендинг на уровне организации и приложения при входе, и многое другое.
Подмена пользователя (RFC 8693: OAuth 2.0 Обмен Токенами)
Добавлена поддержка подмены пользователя через Обмен Токенами:
- Новый конечный пункт в Management API
POST /subject-tokens
для запросаsubject_token
для использования в обмене токенов. - Обновлён конечный пункт OIDC
POST /oidc/token
с новым типом грантаurn:ietf:params:oauth:grant-type:token-exchange
для обменаsubject_token
наaccess_token
для подменённого пользователя.
Смотрите Подмена пользователя для получения дополнительных сведений.
custom_data
на уровне приложения
Добавлено новое произвольное объектное поле custom_data
для приложений. Это поле может хранить любую дополнительную информацию, не определённую в стандартной схеме Application
.
Нажмите для просмотра обновлений Management API
- Новый конечный пункт
PATCH /api/applications/{applicationId}/custom-data
для частичного обновления поляcustom_data
приложения. - Обновление конечного пункта
PATCH /api/applications/{applicationId}
для возможности перезаписи поляcustom_data
.
Нажмите для просмотра обновлений Консоли
Добавлен новый JSON-редактор для пользовательских данных на странице сведений о приложении (за исключением защищённых приложений).
Управление несколькими секретами приложения
Защищённые приложения (машина-машина, традиционные веб, защищённые) теперь могут иметь несколько секретов приложений с истечением срока действия. Это позволяет выполнять ротацию секретов и обеспечивает ещё более безопасный опыт.
Примечание: Старые секреты, созданные до этой функции, всё ещё могут использоваться для аутентификации клиента. Однако рекомендуется удалить старые секреты и создать новые с истечением срока действия для усиления безопасности.
Нажмите для просмотра обновлений Management API
GET /api/applications/{applicationId}/secrets
: Перечислить все секреты приложения.POST /api/applications/{applicationId}/secrets
: Создать новый секрет для приложения.DELETE /api/applications/{applicationId}/secrets/{name}
: Удалить секрет приложения по имени.PATCH /api/applications/{applicationId}/secrets/{name}
: Обновить секрет приложения по имени.DELETE /api/applications/{applicationId}/legacy-secret
: Удалить старый секрет приложения и заменить его новым.
Нажмите для просмотра обновлений Консоли
Для управления секретами приложения перейдите в Logto Консоль -> Приложения -> Сведения о приложении -> Конечные пункты и Учётные данные.
Поле для ввода старого секрета приложения теперь заменено на новую таблицу управления секретами. В этой таблице можно создавать, обновлять и удалять секреты.
Брендинг на уровне организации и приложения
Логотип организации
Теперь можно установить светлые и тёмные логотипы для организаций. Вы можете загрузить логотипы на странице настроек организации.
Также можно переопределить логотип для входа, установив логотип организации. Просто добавьте параметр organization_id
в запрос аутентификации. В большинстве SDK Logto это можно сделать, используя поле extraParams
в методе signIn
.
Например, в JavaScript SDK:
Значение <organization-id>
можно найти на странице настроек организации.
Если вы не нашли поле extraParams
в используемом вами SDK, пожалуйста, дайте нам знать.
Брендинг на уровне приложения
Теперь вы можете установить логотипы, фавиконы и цвета для вашего приложения. Эти настройки будут использоваться в процессе входа, когда приложение инициирует аутентификационный процесс. Если для приложения не заданы настройки брендинга, будет использоваться общий брендинг для процесса входа.
Если в запросе аутентификации указан параметр organization_id
, настройки брендинга на уровне приложения будут переопределены настройками брендинга организации, если они доступны.
Улучшения производительности
Поддержка рендеринга на стороне сервера для приложения опыта
Logto теперь внедряет настройки и фразы для процесса входа непосредственно в файл index.html
для повышения производительности первой загрузки экрана. Приложение всё ещё будет запрашивать настройки и фразы с сервера, если:
- Сервер не внедрил настройки и фразы.
- Параметры в URL отличаются от данных, сгенерированных на сервере.
Улучшения в процессе сборки пакетов
- Использование
tsup
для сборки пакетов коннекторов. Это ускорит процесс сборки и не должно влиять на функциональность пакетов. - Использование
Vite
для транспиляции и сборки пакетов@logto/console
,@logto/demo-app
и@logto/experience
. ParcelJS был удалён и заменён на Vite. Серьёзные изменения быть не должны.
Исправления ошибок
Исправлено поведение обновления jsonb в конечном пункте PATCH /api/applications/{applicationId}
Все поля jsonb объекта Application
теперь должны обновляться в режиме replace
вместо merge
. Это изменение сделает метод PATCH
более предсказуемым и согласованным с проектированием RESTful API.
- Обновление режима обновления поля jsonb с
merge
наreplace
в конечном пунктеPATCH /api/applications/{applicationId}
. - Обновление проверки параметров ввода jsonb поля в конечном пункте
PATCH /api/applications/{applicationId}
сpartial
наfull
. - Затронутые поля:
oidc_client_metadata
,custom_client_metadata
,protected_app_metadata
иcustom_data
.
Примечание: Если вы используете консоль Logto для обновления настроек
Application
, это изменение не должно вас затронуть. Пользователям API, использующим методPATCH
для обновления настроек jsonb поля приложения, следует учитывать это изменение. МетодPATCH
теперь будет заменять всё поле jsonb новыми данными. Любые частичные данные для затронутых полей будут отклонены.
Исправлено некорректное состояние статуса API в вебхуках
Затронутые события вебхуков: Role.Scopes.Updated
, Organizations.Membership.Updates
.
Статус API, возвращаемый из вебхука, всегда был 404. Это было вызвано вставкой данных перед установкой контекста API ответа.
Поскольку вебхук срабатывает только при успешной обработке события, статус ответа должен всегда быть 2xx.
Эта проблема была исправлена путём перемещения вставки данных вебхука после установки контекста API ответа.
Другие улучшения
- Теперь фавикон для тёмной темы можно установить в настройках брендинга процесса входа.
- Добавлены новые алгоритмы дайджеста паролей:
Argon2d
иArgon2id
. Пользователей с этими алгоритмами переведут наArgon2i
при успешном входе. - Конфигурация списка браузеров для
@logto/experience
синхронизирована с тем, что указано вREADME.md
. - Улучшено описание аутентификации в Swagger. Использована нативная схема безопасности OAuth2 OpenAPI вместо настраиваемой схемы безопасности на основе HTTP-заголовков.