2010-07-29 6 views
1

Je suis nouveau à ce sujet mais je ferai de mon mieux pour expliquer ce que j'essaie de faire.Comment dois-je gérer l'authentification dans mon API REST?

J'ai un catalogue de produits et diverses informations privées que mes utilisateurs veulent pouvoir accéder via leur site web.

Par exemple:

utilisateur-a a un site e-commerce et ils veulent vendre ma marchandise. Ils pourront accéder à certains détails des produits via un service web. Ils seront également en mesure de voir le taux négocié que je leur ai donné avec d'autres détails privés.

Comment l'API doit-elle gérer l'authentification de la requête provenant du site Web de l'utilisateur?

J'ai lu toute la journée sur les différentes méthodes d'authentification, mais elles semblent toutes tourner autour de l'idée d'un tiers accédant à des informations utilisateur spécifiques. Un exemple est si vous laissez http://randomtwitterapp.com accéder à votre profil twitter. Dans ce cas, le site tiers doit gérer plusieurs utilisateurs et jetons d'authentification différents. Dans notre cas, mon site Web d'utilisateurs interagit au nom de l'utilisateur. J'espère que cela a du sens.

+0

Tout dépend de la façon dont vous faites confiance * Site Web de l'utilisateur *, ce qui n'est pas clair d'après la question. "interagir au nom de l'utilisateur" est en fait ce que fait OAuth: il permet à vos utilisateurs d'accorder à des tiers des applications Web (même leurs propres sites) l'accès en leur nom sans révéler leurs informations d'identification. – mogsie

Répondre

0

Appelons l'utilisateur A "Alice" car l'appel de l'utilisateur A est fastidieux.

Traitez le site Web d'Alice comme s'il s'agissait d'Alice elle-même. Le prix spécial et tel est spécifique au site Web en question, donc il se connecter sur votre site. Émettre des informations d'identification que la personne développant ce site utilisera pour s'authentifier, puis utiliser ces informations d'identification pour déterminer les prix et les produits que vous affichez. En ce qui concerne les mécanismes d'authentification actuels, cela dépend vraiment de vos besoins. Si tout ce que vous devez faire est de servir des données différentes à des personnes différentes, vous pouvez faire quelque chose d'aussi simple qu'un jeton d'API passé dans la chaîne de requête: http://api.example.com/products?key=9af4d8381781baccb0f915e554f8798d

Ou si Alice a déjà un nom d'utilisateur et un mot de passe pour votre site, vous pouvez lui demander d'utiliser ceux-ci dans ses requêtes API avec Basic Auth.

Si Alice doit entrer les informations de son compte sur différents sites qu'elle ne contrôle pas, alors oAuth est très pratique. Avec cela, vous pouvez essentiellement lui donner une clé API pour chaque site dont elle a besoin pour accéder à votre API. Et vous lui donnez la possibilité de supprimer ces clés API et de refuser l'accès à ces sites.

Questions connexes