2010-07-27 3 views
1

Je suis nouveau sur oAuth et je cherche à créer une application web en utilisant Twitter (oAuth) pour m'authentifier. Il n'y aura pas d'autre méthode de connexion que via Twitters oAuth. Je suis à la recherche de conseils sur les meilleures pratiques pour sécuriser le site basé sur des jetons. Voici mon plan:Connexion sécurisée avec Twitter oAuth - meilleure pratique

  • utilisateur est tiré de mon site pour authentifier via le site Twitters
  • Generate jeton d'accès pour l'utilisateur
  • Obtenez le utilisateurs uniques id Twitter via l'API Twitter
  • Faites une recherche d'utilisateur DB locale avec cet ID et localiser le jeton d'accès si disponible.
  • Si aucun utilisateur, créer une nouvelle ligne dans la table utilisateur et enregistrer contre l'utilisateur. Si l'utilisateur a trouvé, mettre à jour le jeton d'accès contre l'enregistrement de l'utilisateur.
  • Si l'utilisateur est trouvé, md5_salt le twitterid et défini comme un cookie.
  • Si la revisite l'utilisateur, celui de recherche basé sur cookies

Est-ce que le son comme une approche sécurisée ou utilise l'id twitter md5 une mauvaise idée?

Appréciez tous les commentaires.

Répondre

0

Sans savoir exactement ce que fait votre application client/consommateur, il est difficile de dire si cette approche sera "sécurisée".

Un problème que je vois, c'est qu'une fois que vous avez un jeton d'accès de twitter, comment identifiez-vous votre utilisateur si le cookie est supprimé? Ou auriez-vous besoin d'eux pour obtenir un nouveau jeton d'accès? Cela signifierait qu'ils devraient à la fois se connecter et autoriser votre application à chaque fois.

En outre, un jeton d'accès pour un utilisateur de votre application. peut être volé et utilisé par un autre utilisateur de votre application. car cela fonctionne comme un mot de passe ET vous n'avez pas d'authentification de votre côté pour vérifier votre jeton d'accès sauvegardé par cookie.

Pour répondre à votre question, je dois dire que l'utilisation de oauth comme seul fournisseur d'authentification, peu importe comment vous le faites, n'est pas une bonne pratique. Afin de sécuriser à la fois l'application client (consommateur) et l'application serveur (fournisseur), vous devez vérifier l'identité de vos utilisateurs. La façon la plus simple de le faire est d'utiliser un nom d'utilisateur et un mot de passe qui sont stockés dans la tête de vos utilisateurs, et non dans un fichier quelque part ...