2010-07-15 4 views
2

Quelle est la meilleure façon de gérer les clés secrètes de consommateur pour OAuth dans les plugins qui seront distribués avec/comme code source (par exemple, les plugins Wordpress qui accèdent à Delicious ou Twitter)? Je connais OAuth is not designed with this in mind, et il y a proposals to solve it, mais quelle est la meilleure pratique en ce moment?Clés de consommateur OAuth dans les plugins

Il semble y avoir deux approches de ce:

  1. Mettez votre code secret client dans le code source (Occultation peut-être un peu), et l'espoir personne ne va en abuser et obtenir votre application interdite. Si quelqu'un le fait, demandez une nouvelle clé et publiez une mise à jour de votre logiciel. C'est what Twitter recommends for the moment.
  2. Dites à tout le monde d'obtenir sa propre clé de consommateur. Cela pourrait dérouter les non-développeurs qui savent juste comment installer un plugin, et empêche une rapide tentative d'essai de votre logiciel

Y a-t-il des fournisseurs qui vous aident à automatiser la seconde étape? Pour que votre serveur puisse contacter le fournisseur et générer un nouveau secret de consommateur, c'est en quelque sorte lié à votre application, mais toujours unique? Ou existe-t-il d'autres approches réalisables?

+0

Est-ce toujours le meilleur conseil, pour obscurcir la clé? N'appelons pas cette sécurité, cependant, d'accord? Qu'est-ce que WordPress a fini par faire? –

+0

@DSBlank: Il n'y a pas de solution WordPress officielle car elle est gérée dans des plugins développés par des développeurs externes. Il pourrait donc y avoir plusieurs implémentations qui utilisent des stratégies différentes. Je crois que [la deuxième version d'OAuth supprime le besoin de clés de consommateur secrètes] (http://hueniverse.com/2010/05/introducing-oauth-2-0/), mais je ne suis pas sûr de ça. –

Répondre

1

Une troisième option consiste à héberger une application Web qui sert de proxy à tout service OAuth que vous utilisez. Toutes vos clés API restent sous votre contrôle sur votre serveur. L'inconvénient est que vous devez dépenser de l'argent pour faire fonctionner une machine. En prime, vous pouvez recueillir des analyses sur l'utilisation de votre plugin.

La deuxième option est possible si vous pensez que vos utilisateurs seront suffisamment techniques pour générer leurs propres clés API. J'ai implémenté cette méthode et c'est difficile à supporter.

Je ne recommande pas la première approche car les gens pourraient voler votre clé OAuth et prétendre être votre application. Une fois que votre clé API est dans la nature, le service bloquera votre clé API et votre plugin cessera de fonctionner. Ensuite, vous vous efforcerez d'essayer de mettre à jour un tas de code dont vous n'avez plus le contrôle.