摘要,基本和承载认证

时间:2011-12-13 02:43:11

标签: django authentication oauth

我最近发布了problem我正在进行身份验证,但没有收到任何回复,所以我想到了另一种方式来提问而不是多余的。

我在应用程序documentation中看到的是通过访问令牌进行身份验证和接收我正在尝试获取的信息的三种方法:HTTP 摘要身份验证,HTTP 基本身份验证和承载令牌身份验证。这些之间的区别对我来说并不清楚,我在Bearer token auth的尝试(查看第5步)并没有奏效。

有人可以解释这三个是什么,并希望指出我做错了什么?

3 个答案:

答案 0 :(得分:1)

HTTP基本身份验证和HTTP摘要身份验证之间没有太大区别。

对于使用oAuth系统的基本Auth Before请求,用户名附加冒号并与密码连接。结果将使用Base64算法进行编码。

例如,说usernamedemo而您的access_token123,因此在这种情况下,连接后的结果字符串将为'demo:123',一旦我们申请Base64编码,它将变为ZGVtbzoxMjM=

现在,这个编码的字符串在HTTP header中传输,并由oAuth提供程序解码。这不是一个非常强大的编码机制,可以很容易地解码,因为这个Auth系统不适用于非常高的安全系统。

Again Digest还使用HTTP协议发送和接收数据,但它比在plaintext中发送数据的基本OAuth要好得多。摘要使用MD5 cryptographic hashing类型的算法来加密您的password/access_token 1}}并且在此旁边使用nonce值来阻止重放攻击。

希望这会让你对他们的工作方式有所了解。

<强>更新

我刚看到Gimme bar的代码

GET /api/v0/tags HTTP/1.1
Host: gimmebar.com
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; en-us) AppleWebKit/533.6+ (KHTML, like Gecko) Version/4.0 Safari/528.16 Titanium/1.1.0
Accept: */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Authorization: Digest username="funkatron", realm="GimmeBarAPI", nonce="7a3ab1f9cde605f27797cd04c4d1fcf6", uri="/api/v0/tags", response="3654f9b1b2ba9489e1f01ae792852987", opaque="94619f8a70068b2591c2eed622525b0e", algorithm="MD5", cnonce="6897ccbff3b08776ab61e69a814c05b4", nc=00000001, qop="auth"
Connection: keep-alive

如果您在发送请求时看到他们正在传递与nonceusername一起使用的散列算法。所以他们都在应用程序中创建它们并放置在标题部分。所有你需要找到我们需要放置的标题名称。

答案 1 :(得分:1)

&#34; HTTP Basic Auth&#34;和#34; HTTP摘要&#34;使用用户名和密码进行身份验证HTTP Digest身份验证更安全,因为它不会以纯文本形式发送用户名和密码。

&#34; HTTP Bearer Auth&#34;使用access_token进行身份验证。

您的HTTP承载验证码对我来说没问题。

答案 2 :(得分:0)

当您对服务器进行身份验证时,将在服务器端生成承载令牌。然后,对于任何后续请求,您将在请求标头中提供生成的承载令牌。

从安全角度来看,这些令牌是使用私钥生成的,只有验证用户的服务器才知道此密钥

看看jwt他们在这个特定主题上有非常好的文档

gimmebar documentation非常清楚如何获取访问权限

  

POST / api / v0 / auth / reqtoken HTTP / 1.1

     

回复讯息

     

{“request_token”:“390a9b193fc51be1a78d13bf69555212”,“expires”:1309375411}