Api 2013年的两条腿auth标准-我们应该使用oAuth2吗?
如果我要实现一个新的服务器到服务器API,有哪些认证标准可以让其他人使用它变得更容易 理想情况下,我需要记录认证工作原理的文档越少越好(因此是标准),并且使用该服务的开发人员更可能使用标准库 但也有一些限制:Api 2013年的两条腿auth标准-我们应该使用oAuth2吗?,api,oauth,oauth-2.0,Api,Oauth,Oauth 2.0,如果我要实现一个新的服务器到服务器API,有哪些认证标准可以让其他人使用它变得更容易 理想情况下,我需要记录认证工作原理的文档越少越好(因此是标准),并且使用该服务的开发人员更可能使用标准库 但也有一些限制: 我不能保证该API将在HTTPS上可用,因为它可能位于承载多个网站(具有1个IP地址)的盒子上 它应该阻止重播攻击。。。因此,如果请求被网络上的另一个节点捕获,则同一请求不能重新发送到API 理想情况下,您应该只发送请求并获得响应。。。因此,无需首先联系API来获取一次性密钥(nonce
- 我不能保证该API将在HTTPS上可用,因为它可能位于承载多个网站(具有1个IP地址)的盒子上
- 它应该阻止重播攻击。。。因此,如果请求被网络上的另一个节点捕获,则同一请求不能重新发送到API
- 理想情况下,您应该只发送请求并获得响应。。。因此,无需首先联系API来获取一次性密钥(nonce)
- 请求可能应该全部由发送方签名,以避免中间人类型的攻击李>
其他说明: oAuth 1.0的实现、文档和讨论: 不幸的是,我对oAuth 2.0读得越多,就越赞同: 现在提供的是授权的蓝图 协议“这是企业的方式”,提供了“全新的 frontier销售咨询服务和集成解决方案”。
克雷格,问得好。我不是专家,但有一些想法 假设我们必须根据最低公分母编码,并使用您的需求列表(全部4项)作为我的设计种子,我想说以下几点:
?sig=
希望有帮助!您似乎已经对此进行了很多研究,因此,如果您已经了解了所有这些,并且没有任何帮助,我很抱歉。UCC/SAN证书允许在一个IP上有多个主机。@i在您的权利范围内,但在我的情况下,它通常是一个服务器,承载来自不同客户端(站点所有者)的域,他们不想一起购买单个证书。还有SNI(服务器名称指示),但它从IE7或IE8(未真正测试)、Firefox 2、Opera 8、Chrome 6、Safari 2.1、iOS 4.0、Android 3和Windows Phone 7开始。。。所以到了那里。HMAC也是我学习的方式,所以我很高兴我们在同一页上。。。但是我的挫折是oAuth 2被提出作为所有问题的解决方案,但我真的不认为它是(太复杂,太通用,以至于每个人都无法以完全相同的方式实现)。。。我知道你的答案+1,但仍然希望有一个完全规范的标准。此外,由于服务器记录了当前时间(以避免重新播放),它可以在一天后删除,只要你在那里保留UTC时间戳(正如你在链接帖子中提到的)。。。。但我建议延长时间,这样你就可以记录服务器上发生的事情。@CraigFrancis你完全正确,OAuth 2已经变成了一个怪物,没有那么清晰的规范(为什么最初的一位作者离开了)。我知道你在看我
http://provider.example.net/profile
Authorization: OAuth realm="http://provider.example.net/",
oauth_consumer_key="dpf43f3p2l4k3l03",
oauth_signature_method="HMAC-SHA1",
oauth_signature="IxyYZfG2BaKh8JyEGuHCOin%2F4bA%3D",
oauth_timestamp="1191242096",
oauth_token="",
oauth_nonce="kllo9940pd9333jh",
oauth_version="1.0"