对于服务器到服务器对话框,OAuth通过HTTPS比基本身份验证更安全吗?
我的意思是,如果我想通过OAuth从服务器A到服务器B做一些API请求,我必须在服务器A上存储一些身份验证数据(密钥,密钥等)。然后使用这些身份验证数据,我可以有一个令牌并使用此令牌向服务器B发出请求。稍后使用相同的身份验证数据,我将拥有一个令牌密钥,并且能够使用这个新令牌发出请求。
使用Basic Auth,我在服务器A上有一些auth数据(用户,密码)。我现在可以在B上及以后用这些数据执行请求。
现在假设发现了auth数据,因为服务器A .conf
上有一个带有auth数据的文件而且这个文件被盗了。在这两种情况下(OAuth和Basic Auth),这都很糟糕,使用OAuth而不是Basic Auth没有任何好处。关于一个真实案例的示例:我刚刚创建了一个Twitter机器人(与OAuth连接),如果发现了配置信息,该帐户被盗,并且该获胜者现在和将来都可以使用该机器人。
那么,在使用Oauth over Basic Auth进行服务器到服务器请求(使用HTTPS)时,是否还有其他原因我不知道(或者我可能误解了某些内容)?
答案 0 :(得分:3)
如果服务器本身遭到破坏,它们看起来似乎相似,但如果您认为违规行为是在通信渠道中,则存在细微差别。
使用基本身份验证时,每个请求中都会包含完整凭据,而对于OAuth,它是每个请求中包含的访问令牌。乍一看,这似乎是相同的,但令牌确实有一些有趣的特征:
另一个有趣的部分是,大多数漏洞可能发生在通信渠道而不是服务器本身,所以这看起来很重要。
但是有一些缺点,如果您需要立即撤销功能,则承载令牌需要一些额外的复杂性。