web-dev-qa-db-fra.com

OAuth (jeton d'accès) clé API Vs

J'ai rencontré de nombreux articles et beaucoup suggèrent d'utiliser OAuth via la clé API. D'après ma compréhension, dans OAuth, nous obtenons enfin un jeton d'accès et il est valide pendant plusieurs jours. Un exemple est , QuickBooks en ligne OAuth est valide pendant 6 mois.

Ainsi, le jeton d'accès est équivalent à la clé API. Celui qui l'obtient doit le faire sécuriser comme des clés API. Et OAuth les appels doivent être effectués via HTTPS, similaire aux appels basés sur la clé API.

Un autre avantage par rapport à OAuth est l'autorisation. Mais nous pouvons faire de même avec le modèle de clé API. Par exemple, nous pouvons définir des règles dans notre base de données comme celles-ci clés API peut accéder ces API.

Maintenant, quel est le véritable avantage d'OAuth? Si nous implémentons OAuth, nous devons demander à tous nos clients d'installer OAuth prenant en charge les bibliothèques sur leur serveur. Et c'est une tâche complexe pour eux et aussi pour nous. Alors que dans le modèle de clé API, c'est un simple appel Web sans autres bibliothèques et complexités supplémentaires.

Mon intention est simplement de mieux comprendre OAuth et de ne pas comparer et argumenter avec le modèle de clé API.

Remarque:
Je ne parle pas du type de modèle Google et LinkedIn où les utilisateurs doivent voir et donner des autorisations. Je parle simplement des API que nous fournissons à nos propres clients.

Merci d'avance pour votre aide.

24
user10

Vous avez besoin de OAuth uniquement lorsque vous souhaitez permettre à un utilisateur de votre service d'autoriser une application cliente tierce à accéder à ses données hébergées dans votre service sans révéler ses informations d'identification (ID & mot de passe) à l'application.

Ce qu'une paire de clés d'API et de secret d'API peut faire est simplement l'authentification d'une application cliente. S'il vous convient d'autoriser une application cliente authentifiée à accéder aux données d'un utilisateur sans le consentement explicite de l'utilisateur, vous n'avez pas besoin d'utiliser OAuth.

21
Takahiko Kawasaki