J'ai une application mobile REST Appels API qui frappe sur mon serveur sans aucun jeton ou mécanisme de sécurité.
Je veux sécuriser mes appels API. J'essaie de comprendre ce qui est OAuth et comment il sécurisera mon application mobile REST Appels API qui frappent mon serveur?
Je veux également connaître en détail les champs ci-dessous qui sont utilisés dans OAuth. D'où je vais obtenir les champs ci-dessous.
Consumer Key
Consumer Secret
Token
Token Secret
Timestamp
Nonce
Étant donné que la plupart des fournisseurs utilisent OAuth 2.0 et OAuth 1.0 a été déconseillé par les principaux fournisseurs, je vais expliquer OAuth2.0
OAuth est une norme d'autorisation ouverte, couramment utilisée comme moyen pour les utilisateurs Internet de se connecter à des sites Web tiers à l'aide de leurs comptes Microsoft, Google, Facebook, Twitter, One Network, etc. sans exposer leur mot de passe.
vous pouvez implémenter votre propre serveur OAuth, ici j'explique l'auth. sociale, donc le terme OAuth ici fait référence à l'auth social avec OAuth).
En termes simples, OAuth permet aux utilisateurs de se connecter à votre service Web avec des comptes (Facebook, Google, etc.).
les termes ci-dessous n'ont rien à voir avec OAuth mais sont utilisés avec OAuth pour le rendre plus sécurisé).
source: http://smerity.com/
Je vais expliquer le diagramme avec la connexion Facebook comme exemple.
contexte. considérez que vous avez fait ce qui suit, avant d'expliquer le diagramme.
secret_key
et 2) un app_id
Login with Facebook
.maintenant le diagramme.
To access the data: please login with facebook to access the page
login with Facbook
bouton, une nouvelle fenêtre contextuelle OAuth dialog
s'ouvre. demander le nom d'utilisateur et le mot de passe facebook.client_secret
access token
pour l'utilisateur vers le serveur API.access token
.Maintenant, Comment cela sécurise-t-il votre API?
Faites les portions qui ont besoin de sécurité comme login requis pour y accéder. si le client qui fait la demande n'est pas connecté à votre API, envoyez-le à l'étape 2 du diagramme.
Alors qu'est-ce que le nonce? horodatage?
Si quelqu'un vole un jeton d'accès, il peut accéder au serveur API tant que le jeton d'accès expire. Ainsi, lorsque l'utilisateur demande une page, le serveur lui renvoie un nonce qui est stocké dans le serveur. le client signe la demande avec le nonce reçu et complète la demande. comme le nonce n'est utilisé qu'une seule fois, le serveur supprime le nonce. lorsqu'un attaquant saisit le nonce et fait une fausse demande au serveur, le serveur rejette la demande car le numéro unique n'est pas valide car il est déjà utilisé.
TimeStamp est utilisé pour identifier l'heure de création du jeton ou du nonce qui est utilisée pour expirer le jeton ou le nonce dans un délai limité (1 à 2 secondes), le temps nécessaire pour qu'une demande se termine.