Web API OAuth承载令牌安全性

Chr*_*isC 8 security oauth-2.0 asp.net-web-api

我确定我在这里遗漏了一些东西,所以希望这里有人可以填补我.

我正在研究.NET 4.5 Web API中的OAuth 2.0实现(我猜是第2版?),我已经实现了一个非常简单的演示,其中我有一个调用一些基本操作的控制台应用程序.我从"/ Token"端点获得一个令牌,然后将其作为"承载"令牌传递回授权头.一切正常.

但是,我所缺少的是它如何不受MITM,重播或其他攻击的影响?如果我只是简单地处理凭证(以令牌的形式),并且它们始终是相同的凭证,那么为了确保没有人只是窃取我的令牌并模仿我,会有什么样的安全性?

不可否认,我也在使用SSL,但这是围绕此建立的唯一安全措施吗?也许我应该使用某种nonce,或者时间戳检查?如果是这样,那么在Web API中如何做到这一点?

无论如何,我确信这里有一个非常简单的解释,所以我很感激这些信息.

另请注意,我在两个Visual Studio 2013 Web应用程序项目中运行两个服务器,这些项目位于不同端口上运行的不同VS 2013解决方案中.我不确定这是否重要,但我想我会提到它.

Tai*_*deh 15

OAuth 2.0承载令牌仅依赖于SSL/TLS的安全性,没有内部保护或承载令牌.如果您有令牌,则您是所有者.在许多在OAuth 2.0上进行中继的API提供商中,他们以粗体显示客户端开发人员应该安全存储并在传输过程中保护令牌.

您可以阅读Eran Hammer的这篇文章,他曾经与标准化OAuth 2.0的社区合作,但我相信他让他们在意见中发生冲突.检查他的帖子OAuth Bearer Tokens是一个可怕的想法,你也可以阅读这篇文章.

但最终它正在成为标准方式,您必须通过https传输它并安全地存储它.