Web API OAuth承载令牌安全性

时间:2014-10-08 18:54:28

标签: security asp.net-web-api oauth-2.0

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:13)

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

你可以阅读Eran Hammer的这篇帖子,他曾经与标准化OAuth 2.0的社区合作,但我相信他让他们在意见中发生冲突。查看他的帖子OAuth Bearer Tokens are a Terrible Idea,您可以阅读此post too

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