Qu'est ce qu'une clé API
Je suis en train de travailler sur la meilleure façon de gérer l'authentification de l'utilisateur de mon application mobile (iOS & Android) et de l'API (PHP).
De ce que j'ai recherché les options sont:
Basic auth via HTTPS - Vérifier le nom d'utilisateur/mot de passe de l'utilisateur pour chaque demande.
Sessions - Envoyer à un IDENTIFIANT de session à chaque demande; server gère l'état. Donc application envoie le nom d'utilisateur/mot de passe et le serveur vérifie pour un utilisateur connecté sur les demandes ultérieures, tout comme mon site n'.
Jetons API - application Mobile envoie le nom d'utilisateur/mot de passe et reçoit un jeton, puis ajoute cette suite. Jeton stockées dans la bd et vérifiée à chaque demande.
Je devine que mon explication de jetons API est incorrect, car ils semblent identiques aux séances, parce que je stocke l'ID de session dans la DB.
- Mon explication de jetons API être corrigé. Quels sont-ils? En quoi diffèrent-elles à l'IDENTIFIANT de session?
- Quels sont les avantages de l'API de jetons?
- Est oAuth (si nous étions à simplifier ses utilisations) un protocole pour la création d'API "jetons"?
OriginalL'auteur paul | 2013-07-22
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas expert mais je vais vous donner quelques centimes que j'ai pris:
1) Jetons API est un peu un terme général. Généralement une clé API est un identifiant unique d'une application demande l'accès à votre service. Votre service de générer une clé API pour l'application à utiliser lors de votre demande de service. Vous pouvez alors faire correspondre le jeton qu'ils fournissent à celui que vous stockez dans le but d'authentifier l'.
Un id de session peut être utilisé, mais son but est différente de la clé API. L'id de session n'est pas un formulaire d'authentification, mais plutôt une conséquence de l'autorisation. Généralement, une session est établie une fois qu'un utilisateur est autorisé à utiliser une ressource (par exemple, votre service). Par conséquent, un id de session est créé lorsqu'un utilisateur est autorisé à accéder à une ressource. Une clé API est la forme d'authentification similaire à un nom d'utilisateur/mot de passe.
2) les jetons API sont un remplacement à l'envoi de certains nom d'utilisateur/mot de passe sur l'adresse HTTP qui n'est pas sécurisé. Cependant, le problème existe toujours que quelqu'un pourrait la prendre et l'utilisation de l'API jeton de la place.
3) Dans un sens oui. C'est une méthode pour garder les jetons API "frais". Au lieu de passer autour de la même API jeton de vous demander un jeton d'accès lorsque vous voulez utiliser un service. Le protocole OAuth 2.0 étapes sont comme suit:
a) Demande adressée au service avec des informations d'identification d'un certain type
b) le Succès de réponse renvoie un code
c) une Autre demande de service est effectué avec le code
d) le Succès de réponse renvoie le jeton d'accès pour la signature de chaque demande d'API à partir de là jusqu'à la fin.
Beaucoup de grands fournisseurs de services d'utiliser OAuth 2.0 pour le moment. Ce n'est pas une solution parfaite, mais c'est probablement le plus sûr, large diffusion, API de sécurité de la méthode utilisée pour le moment.
Mise à jour de ma réponse, en bref - L'id de session n'est pas un formulaire d'authentification, l'API pion.
Dites-vous d'une clé API permettent seulement d'identifier les demandes venant de mon application et n'a rien à voir avec une connexion de l'utilisateur à l'aide de l'application? Parce que de ce que j'ai lu mon API doit être apatride et ne pas utiliser les sessions.
C'est correct. L'API jeton est transmis à chaque demande de service à partir de l'app, de sorte que le service sait qui demande de la ressource. Je ne recommande pas l'utilisation de sessions soit, vous avez demandé 😉
oui, je suis confus! Ok oublier où les demandes sont à venir à partir de maintenant; Android app s'ouvre et demande un nom d'utilisateur et le mot de passe de l'Utilisateur et les envoie à l'aide de base HTTP auth sur SSL, les demandes ultérieures également envoyer le nom d'utilisateur et mot de passe. C'est une méthode. D'où vient donc oAuth/jetons de venir sur ce, si je ne veux pas opter pour le dessus de l'authentification basique méthode?
OriginalL'auteur David Normington