• lanzamiento

Actualizaciones del producto Logto (agosto 2024)

Explora nuestra versión de agosto de 2024 con suplantación de usuarios, gestión de secretos de aplicaciones, branding de la experiencia de inicio de sesión a nivel de organización y aplicación, y mucho más.

Simeng
Simeng
Developer

Suplantación de usuarios (RFC 8693: Intercambio de Tokens OAuth 2.0)

Se ha añadido soporte para la suplantación de usuarios mediante Intercambio de Tokens:

  • Nuevo punto de enlace de la API de Gestión POST /subject-tokens para solicitar un subject_token para utilizar en el intercambio de tokens.
  • Se ha actualizado el punto de enlace OIDC POST /oidc/token con un nuevo tipo de concesión urn:ietf:params:oauth:grant-type:token-exchange para intercambiar un subject_token por un access_token suplantado de usuario.

Consulta Suplantación de usuarios para más detalles.

custom_data a nivel de aplicación

Se ha añadido un nuevo campo de objeto arbitrario custom_data a las aplicaciones. Este campo puede almacenar cualquier información adicional no definida en el esquema estándar Application.

Haz clic para expandir las actualizaciones de la API de Gestión
  • Nuevo punto de enlace PATCH /api/applications/{applicationId}/custom-data para actualizar el campo custom_data de una aplicación.
  • Actualización del punto de enlace PATCH /api/applications/{applicationId} para permitir la sobrescritura del campo custom_data.
Haz clic para expandir las actualizaciones de la Consola

Se ha añadido un nuevo editor JSON de datos personalizados a la página de detalles de la aplicación (excepto para Aplicaciones Protegidas).

Gestión de múltiples secretos de aplicaciones

Las aplicaciones seguras (máquina-a-máquina, web tradicionales, Protegidas) ahora pueden tener múltiples secretos de aplicaciones con fecha de expiración. Esto permite la rotación de secretos y proporciona una experiencia aún más segura.

Nota: El secreto heredado creado antes de esta función todavía puede usarse para la autenticación del cliente. Sin embargo, se recomienda eliminar los antiguos y crear nuevos secretos con fecha de expiración para mejorar la seguridad.

Haz clic para expandir las actualizaciones de la API de Gestión
  • GET /api/applications/{applicationId}/secrets: Lista todos los secretos de una aplicación.
  • POST /api/applications/{applicationId}/secrets: Crea un nuevo secreto para una aplicación.
  • DELETE /api/applications/{applicationId}/secrets/{name}: Elimina un secreto de una aplicación por nombre.
  • PATCH /api/applications/{applicationId}/secrets/{name}: Actualiza un secreto de una aplicación por nombre.
  • DELETE /api/applications/{applicationId}/legacy-secret: Elimina el secreto heredado de una aplicación y reemplázalo con uno nuevo.
Haz clic para expandir las actualizaciones de la Consola

Para gestionar los secretos de tu aplicación, ve a la Consola de Logto -> Aplicaciones -> Detalles de la Aplicación -> Endpoints & Credenciales.

El campo de entrada del secreto de la aplicación original, que era de solo lectura, ha sido reemplazado por una nueva tabla de gestión de secretos. Puedes crear, actualizar y eliminar secretos en esta tabla.

Branding a nivel de organización y aplicación

Logo de la organización

Ahora es posible configurar logotipos claros y oscuros para las organizaciones. Puedes cargar los logotipos en la página de configuración de la organización.

Además, es posible sobrescribir el logotipo de la experiencia de inicio de sesión de una organización. Simplemente añade el parámetro organization_id a la solicitud de autenticación. En la mayoría de los SDK de Logto, esto se puede hacer usando el campo extraParams en el método signIn.

Por ejemplo, en el SDK de JavaScript:

El valor <organization-id> se puede encontrar en la página de configuración de la organización.

Si no encuentras el campo extraParams en el SDK que estás usando, por favor háznoslo saber.

Branding a nivel de aplicación

Ahora puedes configurar logotipos, favicons y colores para tu aplicación. Estas configuraciones se utilizarán en la experiencia de inicio de sesión cuando la aplicación inicie el flujo de autenticación. Para aplicaciones que no tienen configuraciones de branding, se usará el branding de la experiencia de inicio de sesión omni.

Si se proporciona organization_id en la solicitud de autenticación, las configuraciones de branding a nivel de aplicación serán sobrescritas por las configuraciones de branding de la organización, si están disponibles.

Mejoras de rendimiento

Soporte a la experiencia de renderizado en servidor del app

Logto ahora inyecta las configuraciones y frases de la experiencia de inicio de sesión en el archivo index.html para mejorar el rendimiento de la primera pantalla. La aplicación de experiencia aún obtendrá las configuraciones y frases del servidor si:

  • El servidor no inyectó las configuraciones y frases.
  • Los parámetros en la URL son diferentes a los datos renderizados por el servidor.

Mejoras en la construcción de paquetes

  • Se usó tsup para construir los paquetes de conectores. Esto hará que el proceso de construcción sea más rápido y no debería afectar la funcionalidad de los paquetes.
  • Se usó Vite para la transpilación y empaquetado de los paquetes @logto/console, @logto/demo-app y @logto/experience. Se eliminó ParcelJS y se reemplazó por Vite. No se esperan cambios rupturistas.

Corrección de errores

Corrección del comportamiento de actualización jsonb del punto de enlace PATCH /api/applications/{applicationId}

Todos los campos jsonb del objeto Application deben actualizarse en modo replace en lugar de merge. Este cambio hará que el método PATCH sea más predecible y consistente con el diseño de la API Restful.

  • Se actualizó el modo de actualización de campos jsonb de merge a replace en el punto de enlace PATCH /api/applications/{applicationId}.
  • Se actualizó la validación de los parámetros de entrada del campo jsonb de la API de partial a full en el punto de enlace PATCH /api/applications/{applicationId}.
  • Campos afectados: oidc_client_metadata, custom_client_metadata, protected_app_metadata y custom_data.

Nota: Si estás utilizando la consola de Logto para actualizar las configuraciones de Application, no deberías verte afectado por este cambio. Los usuarios de la API que están usando el método PATCH para actualizar las configuraciones de campo jsonb de Application deben ser conscientes de este cambio. El método PATCH ahora reemplazará todo el campo jsonb con los nuevos datos de entrada. Se rechazará cualquier dato de entrada parcial de los campos afectados.

Corrección de algunos problemas donde el payload de eventos de webhooks siempre devuelve el código de estado 404 en la respuesta de la API

Eventos de webhook afectados: Role.Scopes.Updated, Organizations.Membership.Updates.

El código de estado de la respuesta de la API devuelto por el payload del evento de webhook siempre era 404. Eso fue causado por insertar el payload del evento de webhook antes de que se configurara el contexto de la respuesta de la API.

Dado que solo activamos el webhook cuando el evento se procesa con éxito, el código de estado siempre debería ser 2xx.

Este problema se ha corregido moviendo la inserción del payload del evento de webhook después de que se configure el contexto de la respuesta de la API.

Otras mejoras

  • Ahora se puede configurar el favicon para el tema oscuro en la configuración del branding de la experiencia de inicio de sesión.
  • Se añadieron nuevos algoritmos de digestión de contraseñas: Argon2d y Argon2id. Los usuarios con esos algoritmos serán migrados a Argon2i tras un inicio de sesión exitoso.
  • La configuración de la lista de navegadores de @logto/experience se ha sincronizado con lo que se indica en el README.md.
  • Mejorada la descripción de autorización en swagger. Se utiliza el esquema de seguridad OAuth2 nativo de OpenAPI en lugar de un esquema de seguridad basado en encabezados HTTP personalizados.