J’ai une question concernant la sécurité de l’utilisation de l’API, car je pense qu’il me manque un concept trivial en raison de mon manque d’expérience.
J’ai une implémentation headless de Discourse à intégrer dans mon frontend et j’ai réussi à activer le SSO pour l’authentification des utilisateurs.
Ma compréhension initiale était que j’utilisais le SSO pour m’authentifier en tant qu’« activeUser » afin de récupérer des données spécifiques à l’activeUser de l’API. Je réalise maintenant que ce n’est pas tout à fait correct.
Je constate maintenant que les données renvoyées semblent dépendre de l’« api-username » passé dans l’en-tête. Mais j’utilise une clé API d’administrateur, ce qui, je crois, me permet de récupérer les données de n’importe quel utilisateur en passant le bon nom d’utilisateur pour « api-username ».
Ma question se résume donc à ceci : il semble que l’API n’introduise pas le concept d’« activeuser » et que je doive ajuster l’utilisateur actif en récupérant le nom d’utilisateur par external_id, puis en l’utilisant comme api-username tout au long de la session active, est-ce correct ?
Si ma compréhension est correcte, n’est-il pas facile pour un pirate informatique de simplement modifier l’api-username dans l’en-tête pour récupérer les discussions de chat de n’importe quel utilisateur ?
Toute information supplémentaire sera appréciée pour m’aider à comprendre. Merci !
Vous ne devriez jamais utiliser cette API depuis un frontend car dans ce cas, c’est effectivement un risque (en fait, le risque est beaucoup plus élevé car le pirate informatique peut tout faire)
Vous devriez le faire depuis le backend.
Si ce n’est pas une option, vous devriez alors utiliser des clés d’API utilisateur à la place.
En tant qu’implémentation headless, je vais exécuter cela depuis mon front-end. Donc, dans ce cas, il semble que je doive passer du temps à essayer de déchiffrer la discussion sur ce sujet :
Semblable à ces discussions, je serais intéressé par la génération automatique de la clé API des utilisateurs en utilisant mon accès à l’API d’administration. Cependant, dans mon flux, je ne voudrais pas que l’utilisateur redirige vers une nouvelle page pour « approuver » mon application. Je voudrais soit forcer l’approbation en utilisant ma clé API d’administrateur de confiance, soit existe-t-il un paramètre que je peux désactiver afin qu’une authentification supplémentaire ne soit pas nécessaire pour la nouvelle clé API utilisateur que je génère ?