7
votes

Authentification de Digest, de base et au porteur

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.

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 Auth, http BASIC Auth, et Porteur Auth. Les distinctions entre ceux-ci ne sont pas claires pour moi et mes tentatives de authentifiant au porteur (arrêtez l'étape 5) n'ont pas travaillé.

Quelqu'un peut-il expliquer ce que ces trois sont et soulignent ce que je fais mal?


0 commentaires

3 Réponses :


2
votes

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.

Par exemple, dire nom d'utilisateur est démo et votre Access_Token est < Code> 123 Donc, dans ce cas, la chaîne résultante après la concaténation sera 'Démo: 123' et une fois que nous appliquons la base64 Encode, il deviendra zgvtbzoxmjm = / p>

Cette chaîne codée est transmise dans l'en-tête HTTP 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é.

à nouveau Digest utilisez également un protocole http pour envoyer et recevoir des données, mais c'est bien mieux que de base oauth qui envoie des données dans en plaignant .Digest utilise MD5 Cryptographic hachage Type d'algorithme pour chiffrer votre mot de passe Mot de passe / Access_Token nonce pour arrêter la relecture d'attaque. < / p>

J'espère que cela vous donnera une idée de la façon dont le y travail.

update

Je viens de voir le code à la barre de gimme xxx

et si Vous voyez en envoyant la demande, ils passent l'algorithme de hachage utilisée avec nonce , nom d'utilisateur .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.


3 commentaires

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 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.



2
votes

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.

à 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é

regarder JWT Ils ont vraiment une bonne documentation sur ce sujet spécifique

Le gimmebar Documentation est assez clair sur la façon d'accéder à

post / API / V0 / Auth / ReqToken HTTP / 1.1

Message de réponse

{"demande_token": "390A9B193FC51BE1A78D13BF695555212", "Expire": 1309375411}


0 commentaires

4
votes

"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.

"HTTP Bearer Auth" authentifier à l'aide d'Access_Token.

Votre code d'authentification du porteur HTTP vous semble correct.


0 commentaires