Comment optimiser la sécurité de vos APIs

La sécurité est un élément essentiel de toute application, surtout en ce qui concerne les APIs, dans lesquelles des centaines voire des milliers d'applications réalisent des appels quotidiennement. Chaque jour, de nouvelles menaces et vulnérabilités apparaissent, et chaque jour, les entreprises mènent une course contre la montre pour s'en protéger. Il est donc primordial de protéger vos APIs des attaques. Heureusement, même si un API Manager n'élimine pas toutes les menaces, il peut vous aider à vous protéger contre certaines des menaces les plus courantes. Lorsqu'il est utilisé comme proxy, il peut empêcher les attaques malveillantes d'atteindre votre architecture.

Au départ, la sécurité des APIs se résumait à une simple autorisation. L'utilisateur était invité à saisir son nom d'utilisateur et son mot de passe, lesquels étaient ensuite transmis à l'API par le logiciel qui l'utilisait. Toutefois, cette pratique représentait un risque considérable pour la sécurité.

Aujourd'hui, le système d'autorisation par jeton (OAuth) constitue la mesure de sécurité la plus courante pour les APIs. Contrairement à l'autorisation de base, OAuth ne permet pas au client de l'API d'accéder aux informations des utilisateurs. À la place, ce système dirige l'utilisateur vers une page du serveur de destination sur laquelle il peut saisir ses informations d'identification, puis renvoie un jeton d'accès au client de l'API pour cet utilisateur.

L'avantage de l'accès par jeton est qu'il peut être supprimé à tout moment et pour n'importe quelle raison : en cas de violation de sécurité, d'utilisation abusive ou même si l'utilisateur ne souhaite plus que ce service ait accès à son compte. Les jetons d'accès permettent également de restreindre les autorisations, tout en laissant l'utilisateur décider de ce que l'application peut faire de ses informations ou de son compte.

Les bonnes pratiques en matière de sécurité des APIs sont bien définies, quelle que soit la complexité ou la simplicité de l'API. Les développeurs doivent s'assurer que leurs APIs garantissent la sécurité des données des utilisateurs (noms d'utilisateur et mots de passe) en créant une couche de séparation entre leurs informations et le client. Les développeurs ne doivent jamais demander d'identifiants de connexion via des APIs publiques, au risque de contribuer à la vulnérabilité des informations de l'utilisateur.