Mises à jour du produit Logto
🎉 Présentation de notre version de juillet : SDK Logto API, Coffre-fort secret pour le stockage fédéré de jetons, gestion du TOTP et des codes de secours via l'API de compte, et plus encore !
SDK Logto API
Un SDK TypeScript pour interagir avec l'API de gestion de Logto en utilisant l'authentification par identifiants client.
Comment ça marche :
- Crée une application machine-à-machine dans la Console Logto.
- Accorde à l'application l'accès à l'API de gestion.
- Installe le SDK via npm :
npm install @logto/api
- Utilise
createManagementApi()
pour créer un client API de gestion typé avec les identifiants de ton application.
Points forts :
- Gère automatiquement l'authentification et le renouvellement du jeton OAuth.
- Prend en charge Logto Cloud et les instances auto-hébergées.
- Simplifie l'intégration avec l'API de gestion de Logto, te permettant de te concentrer sur le développement de fonctionnalités plutôt que sur la gestion des requêtes API bas niveau.
Coffre-fort secret
Le coffre-fort secret est une solution de stockage sécurisé dans Logto pour gérer les données sensibles des utilisateurs, y compris les jetons d'accès, les clés API, les mots de passe à usage unique et autres informations confidentielles. Ces secrets sont généralement utilisés pour accéder à des services tiers au nom des utilisateurs, ce qui rend le stockage sécurisé essentiel.
Prise en charge du stockage fédéré de jetons
Le stockage des jetons est désormais pris en charge aussi bien pour les connecteurs SSO sociaux qu'entreprises. Lorsqu'il est activé, Logto stocke l'ensemble des jetons délivrés par le fournisseur d'identités après une authentification réussie. Les applications peuvent ensuite récupérer le jeton d'accès ultérieurement—sans nécessiter la ré-authentification de l'utilisateur—pour appeler des API tierces.
Connecteurs pris en charge :
- Connecteurs sociaux : GitHub, Google, Facebook, OAuth 2.0 standard, et OIDC standard
- Connecteurs SSO entreprises : tous les connecteurs SSO basés sur OIDC
Fonctionnement :
- Active le stockage des jetons pour les connecteurs SSO sociaux et d'entreprise dans la Console Logto ou via l'API de gestion Logto.
- Une fois activé, Logto stocke automatiquement l'ensemble des jetons délivrés par le fournisseur après une authentification utilisateur réussie.
- Récupère le jeton stocké via l'API de compte quand nécessaire.
Pour plus de détails, consulte la documentation du coffre-fort secret.
Ajouter TOTP et codes de secours via l'API de compte
Les utilisateurs peuvent désormais ajouter un TOTP et des codes de secours via l'API de compte.
POST /api/my-account/mfa-verifications/totp-secret/generate
: Génère un secret TOTP.POST /api/my-account/mfa-verifications/backup-codes/generate
: Génère des codes de secours.POST /api/my-account/mfa-verifications
: Ajoute un TOTP ou un code de secours en utilisant le secret ou les codes générés.GET /api/my-account/mfa-verifications/backup-codes
: Récupère les codes de secours.
Autres améliorations
- Connecteurs sociaux : Ajout de la prise en charge du paramètre personnalisé
scope
lors de la génération de l'URL d'autorisation pour les connecteurs sociaux. Cela te permet de demander des permissions supplémentaires auprès du fournisseur social lors de l'appel au point de terminaison de vérification sociale de Logto. Si un scope est fourni, il sera utilisé dans la requête d'autorisation ; sinon, le scope par défaut configuré dans les paramètres du connecteur sera utilisé. - Console : Pour mieux supporter la nouvelle fonctionnalité Coffre-fort secret, nous avons remanié la présentation de la page de détails utilisateur. Les identités sociales et SSO d'entreprise de l'utilisateur sont maintenant regroupées dans une nouvelle section Connexion. Cette section liste toutes les connexions liées d'un utilisateur, affichant les informations d'identité tierces et le statut de stockage des jetons (si applicable). Une page détaillée d'identité utilisateur est également disponible pour chaque connexion, fournissant davantage d'informations sur l'identité liée et les jetons associés.
Corrections de bugs
Contrainte de clé étrangère tenant-aware pour la table organization_user_relations
Problème
Les développeurs pouvaient par erreur attribuer un user_id
d'un autre tenant à une organisation, provoquant des erreurs 500 sur les points de terminaison d'API utilisateur d'organisation. La table organization_user_relations
d'origine ne contenait qu'une contrainte de clé étrangère sur users (id)
, ce qui permettait d'assigner n'importe quel ID utilisateur existant, indépendamment de l'isolement du tenant.
Cause racine
Logto applique la sécurité au niveau de la ligne (RLS) sur toutes les tables pour isoler les accès aux données des tenants. Lors de la jointure de la table utilisateurs avec organization_user_relations
, les données utilisateur réelles deviennent inaccessibles pour le tenant actuel en raison des restrictions RLS, ce qui entraîne un retour de données null et déclenche des erreurs serveur 500.
Solution
Une contrainte de clé étrangère composite (tenant_id, user_id)
référencée sur users (tenant_id, id)
a été ajoutée pour garantir que l'ID tenant de la relation organisation-utilisateur corresponde à celui de l'utilisateur. Cela assure un isolement correct des tenants au niveau de la base de données.