J'ai un service web Restful API, qui est utilisé par les différents 3e parties. Une partie de cette API est limité (vous avez besoin du nom d'utilisateur/mot de passe pour y accéder). Je me demandais quel serait le meilleur moyen de la mise en œuvre de l'authentification?
Je suis en utilisant le protocole https, donc la communication est cryptée. J'ai deux idées:
- Avant que l'utilisateur commence à utiliser (restreint) de service, il envoie le nom d'utilisateur/mot de passe à l'aide de la POSTE (depuis https est utilisé les informations d'identification sont cryptées). Après la connexion est réussie, le serveur renvoie aléatoire simple de la valeur d'usage (pour l'instant) qui est mis en correspondance avec ce nom d'utilisateur. Lors de la prochaine demande est faite, le long du côté d'un nom d'utilisateur, le client envoie déjà retourné nonce. Les serveurs matches nom d'utilisateur et le nonce et retourne le nouveau nonce à côté de données demandées. Chaque nouvelle requête utilise le nouveau nonce. Fondamentalement, c'est une version allégée de Digest authentification d'accès.
- Depuis cette API est utilisée à partir de la 3ème partie, le nom d'utilisateur/mot de passe peut être utilisé pour chaque (restreint) de la demande. Depuis https est utilisé, ils seront cryptées. La chute de cette approche est le fait que ce ne serait pas Reposante conforme (POST serait toujours utilisé).
Je suis beaucoup plus proche de choix à la première approche (c'est Reposant conforme, relativement facile à mettre en œuvre, XML, json ou html peut être utilisé sans changer quoi que ce soit), mais je voulais voir quelle est votre opinion? Que recommandez-vous: d'abord, deuxième ou une troisième approche?
Btw, je suis à l'aide de Python à côté serveur.