Mises à jour du produit Logto (août 2024)
Découvrez notre version d'août 2024 avec l'usurpation d'identité utilisateur, la gestion des secrets d'application, la personnalisation de l'expérience de connexion au niveau de l'organisation et de l'application, et bien plus encore.
Usurpation d'identité utilisateur (RFC 8693 : Échange de jetons OAuth 2.0)
Ajout du support pour l'usurpation d'identité utilisateur via l'échange de jetons :
- Nouveau point de terminaison de l'API de gestion
POST /subject-tokens
pour demander unsubject_token
à utiliser lors de l'échange de jetons. - Mise à jour du point de terminaison OIDC
POST /oidc/token
avec un nouveau type de subventionurn:ietf:params:oauth:grant-type:token-exchange
pour échanger unsubject_token
contre unaccess_token
usurpé par l'utilisateur.
Voir Usurpation d'identité utilisateur pour plus de détails.
custom_data
au niveau de l'application
Ajout d'un nouveau champ d'objet arbitraire custom_data
aux applications. Ce champ peut stocker toute information supplémentaire non définie dans le schéma standard d'Application
.
Cliquez pour développer les mises à jour de l'API de gestion
- Nouveau point de terminaison
PATCH /api/applications/{applicationId}/custom-data
pour mettre à jour le champcustom_data
d'une application. - Mise à jour du point de terminaison
PATCH /api/applications/{applicationId}
pour permettre l'écrasement du champcustom_data
.
Cliquez pour développer les mises à jour de la console
Ajout d'un nouvel éditeur JSON de données personnalisées à la page de détails de l'application (à l'exception des applications protégées).
Gestion des multiples secrets d'application
Les applications sécurisées (machine-machine, web traditionnelles, protégées) peuvent désormais avoir plusieurs secrets d'application avec expiration. Cela permet la rotation des secrets et offre une expérience encore plus sécurisée.
Remarque : Le secret hérité créé avant cette fonctionnalité peut encore être utilisé pour l'authentification client. Cependant, il est recommandé de supprimer les anciens et de créer de nouveaux secrets avec expiration pour une sécurité améliorée.
Cliquez pour développer les mises à jour de l'API de gestion
GET /api/applications/{applicationId}/secrets
: Listez tous les secrets d'une application.POST /api/applications/{applicationId}/secrets
: Créez un nouveau secret pour une application.DELETE /api/applications/{applicationId}/secrets/{name}
: Supprimez un secret d'une application par son nom.PATCH /api/applications/{applicationId}/secrets/{name}
: Mettez à jour un secret d'une application par son nom.DELETE /api/applications/{applicationId}/legacy-secret
: Supprimez le secret hérité d'une application et remplacez-le par un nouveau.
Cliquez pour développer les mises à jour de la console
Pour gérer vos secrets d'application, allez à Logto Console -> Applications -> Détails de l'application -> Endpoints & Credentials.
Le champ d'entrée du secret d'application en lecture seule a maintenant été remplacé par une nouvelle table de gestion des secrets. Vous pouvez créer, mettre à jour et supprimer des secrets dans cette table.
Personnalisation au niveau de l'organisation et de l'application
Logo de l'organisation
Il est maintenant possible de définir des logos clairs et sombres pour les organisations. Vous pouvez télécharger les logos dans la page des paramètres de l'organisation.
Il est également possible de remplacer le logo de l'expérience de connexion d'une organisation. Il suffit d'ajouter le paramètre organization_id
à la demande d'authentification. Dans la plupart des SDK Logto, cela peut être fait en utilisant le champ extraParams
dans la méthode signIn
.
Par exemple, dans le SDK JavaScript :
La valeur <organization-id>
peut être trouvée dans la page des paramètres de l'organisation.
Si vous ne trouvez pas le champ extraParams
dans le SDK que vous utilisez, veuillez nous en informer.
Personnalisation au niveau de l'application
Vous pouvez désormais définir des logos, des favicons et des couleurs pour votre application. Ces paramètres seront utilisés dans l'expérience de connexion lorsque l'application initie le flux d'authentification. Pour les applications qui n'ont pas de paramètres de personnalisation, la personnalisation de l'expérience de connexion omni sera utilisée.
Si organization_id
est fourni dans la demande d'authentification, les paramètres de personnalisation au niveau de l'application seront remplacés par les paramètres de personnalisation de l'organisation, si disponibles.
Améliorations des performances
Support de l'expérience de rendu côté serveur de l'application
Logto injecte maintenant les paramètres et les phrases de l'expérience de connexion dans le fichier index.html
pour une meilleure performance du premier écran. L'application d'expérience récupérera toujours les paramètres et les phrases depuis le serveur si :
- Le serveur n'a pas injecté les paramètres et les phrases.
- Les paramètres dans l'URL sont différents des données rendues côté serveur.
Améliorations de la construction des packages
- Utilisez
tsup
pour construire les packages de connecteurs. Cela rendra le processus de construction plus rapide, et ne devrait pas affecter la fonctionnalité des packages. - Utilisez
Vite
pour la transpilation et le bundling des packages@logto/console
,@logto/demo-app
et@logto/experience
. Suppression de ParcelJS et remplacement par Vite. Aucun changement majeur à prévoir.
Corrections de bugs
Correction du comportement de mise à jour jsonb du point de terminaison PATCH /api/applications/{applicationId}
Tous les champs jsonb de l'objet Application
doivent être mis à jour en mode replace
au lieu du mode merge
. Ce changement rendra la méthode PATCH
plus prévisible et cohérente avec la conception de l'API Restful.
- Mise à jour du mode de mise à jour de champ jsonb de
merge
àreplace
dans le point de terminaisonPATCH /api/applications/{applicationId}
. - Mise à jour de la validation des paramètres d'entrée des champs jsonb de l'API de
partiel
àcomplet
dans le point de terminaisonPATCH /api/applications/{applicationId}
. - Champs affectés :
oidc_client_metadata
,custom_client_metadata
,protected_app_metadata
etcustom_data
.
Remarque : Si vous utilisez la console Logto pour mettre à jour les paramètres de l'
Application
, vous ne devriez pas être affecté par ce changement. Les utilisateurs de l'API qui utilisent la méthodePATCH
pour mettre à jour les paramètres de champ jsonb de l'Application
devraient être au courant de ce changement. La méthodePATCH
remplacera maintenant tout le champ jsonb par les nouvelles données d'entrée. Toute donnée d'entrée partielle des champs affectés sera rejetée.
Correction de l'événement webhook où la charge utile renvoie toujours le statut de réponse API 404
Événements webhook affectés : Role.Scopes.Updated
, Organizations.Membership.Updates
.
Le code statut de la réponse API renvoyé par la charge utile de l'événement webhook était toujours de 404. Cela était dû à l'insertion de la charge utile de l'événement webhook avant que le contexte de réponse API ne soit défini.
Étant donné que nous ne déclenchons le webhook que lorsque l'événement est traité avec succès, le code statut devrait toujours être de 2xx.
Ce problème a été corrigé en déplaçant l'insertion de la charge utile de l'événement webhook après que le contexte de réponse API soit défini.
Autres améliorations
- Le favicon pour le thème sombre peut maintenant être défini dans les paramètres de personnalisation de l'expérience de connexion.
- Ajout de nouveaux algorithmes de hachage pour le mot de passe :
Argon2d
etArgon2id
. Les utilisateurs avec ces algorithmes seront migrés versArgon2i
après une connexion réussie. - La configuration de la liste des navigateurs pour
@logto/experience
a été synchronisée avec ce qui est indiqué dansREADME.md
. - Amélioration de la description de l'authentification Swagger. Utiliser le schéma de sécurité OAuth2 natif d'OpenAPI au lieu du schéma de sécurité basé sur l'en-tête HTTP personnalisé.