J'ai récemment posté un problème j'avais avec Authentification, mais n'a reçu aucune réponse, j'ai donc pensé à une autre façon de poser la question sans être redondant. p>
Qu'est-ce que je vois dans les applications Documentation est de trois façons de transmettre le jeton d'accès pour authentifier et recevoir les informations que j'essaye d'obtenir: http Digest forte> Auth, http Quelqu'un peut-il expliquer ce que ces trois sont et soulignent ce que je fais mal? P>
3 Réponses :
Il n'y a pas beaucoup de différence entre l'authentification de base HTTP et l'authentification Digest HTTP.
Pour l'authentification de base avant la demande avec le nom d'utilisateur du système OAuth est ajouté avec un colon et concatéré avec le mot de passe. Le résultat ne sera codé avec l'algorithme de base64. P>
Par exemple, dire Cette chaîne codée est transmise dans l'en-tête HTTP code> et décodé par le fournisseur OAuth.ACain Ce n'est pas un mécanisme de codage très fort et peut facilement être décodé car ce système d'authentification n'est pas signifiait pour un système sécurisé très élevé. p> à nouveau Digest utilisez également un protocole J'espère que cela vous donnera une idée de la façon dont le y travail. p> update strong> p> Je viens de voir le code à la barre de gimme p> et si Vous voyez en envoyant la demande, ils passent l'algorithme de hachage utilisée avec nom d'utilisateur code> est
démo code> et votre
Access_Token code> est < Code> 123 code> Donc, dans ce cas, la chaîne résultante après la concaténation sera
'Démo: 123' Code> et une fois que nous appliquons la base64 Encode, il deviendra
zgvtbzoxmjm = code> code> / p>
http code> pour envoyer et recevoir des données, mais c'est bien mieux que de base oauth qui envoie des données dans
en plaignant code > .Digest utilise
MD5 Cryptographic hachage Code> Type d'algorithme pour chiffrer votre mot de passe
Mot de passe / Access_Token à côté de cette utilisation, utilisez
nonce code> pour arrêter la relecture d'attaque. < / p>
nonce code>,
nom d'utilisateur code> .so tout ce qu'ils les créent dans leur application et placement dans la section d'en-tête. Vous devez trouver quel nom d'en-tête nous devons mettre. p> p>
Merci pour la réponse, mais je ne suis toujours pas clair comment implémenter cela en code. Avez-vous des conseils à ce sujet?
@captdaylight je ne conseillerai pas d'aller pour l'autorité de base, car c'est trop basique.Now pour l'autre partie Lorsque vous créez une demande, vous devez chiffrer votre nom d'utilisateur et votre mot de passe à l'aide de MD5 code> et placez-les dans l'en-tête. partie.
Premièrement, c'est un ':' qui sépare le nom d'utilisateur et le mot de passe de «Basic» auth. Le porteur est quelque chose de spécifique à OAuth et votre référence à OAuth est totalement confuse avec l'en-tête de base de l'autorisation HTTP.
Le jeton au porteur est généré côté serveur lorsque vous vous authentifiez contre le serveur. Ensuite, pour toute demande ultérieure, vous fournissez le jeton au porteur généré dans l'en-tête de la demande. P>
à partir d'une perspective de sécurité Ces jetons sont générés à l'aide d'une clé privée, seul le serveur authentifiant l'utilisateur connaît cette clé p>
regarder JWT Ils ont vraiment une bonne documentation sur ce sujet spécifique P>
"HTTP Basic Auth" et "Digest http" authentifier à l'aide du nom d'utilisateur et du secret. L'authentification HTTP Digest est plus sécurisée car elle n'envoie pas de nom d'utilisateur ni de secret comme texte brut. P>
"HTTP Bearer Auth" authentifier à l'aide d'Access_Token. P>
Votre code d'authentification du porteur HTTP vous semble correct. p>