【发布时间】:2017-03-07 22:34:36
【问题描述】:
我正在构建一个使用 ADFS 3.0 颁发的 JWT 令牌保护的移动应用和 API。移动应用程序注册为 ADFS 的 OAuth2 客户端。我担心有人会拦截 JWT 令牌并使用它来恶意访问 API。
我的问题是这是否足以保护 API?
【问题讨论】:
-
为了避免JWT拦截,必须使用https
我正在构建一个使用 ADFS 3.0 颁发的 JWT 令牌保护的移动应用和 API。移动应用程序注册为 ADFS 的 OAuth2 客户端。我担心有人会拦截 JWT 令牌并使用它来恶意访问 API。
我的问题是这是否足以保护 API?
【问题讨论】:
令牌确实很敏感,但有几个因素可以缓解这种情况。
令牌在身份验证标头中传递。这就是为什么您只需要通过 https 调用来传递它的原因,因为此时标头会被加密并且是安全的。
令牌仅在一段时间内有效......您可以将此值设置为您想要的任何值。例如,我让它们设置了 1 小时。即使有人确实获得了令牌,他们也只能在它失效的那段时间内使用它。
您还需要保护生成令牌的方法。保持 ClientID 和 ClientSecret 安全。例如,不要在 URL 中传递它们,因为这可能会被拦截。
如果您执行所有这些操作,您将与互联网上的任何人一样安全。
最后一点,有些人喜欢将令牌存储在数据库中。我建议反对它。是的,以安全的方式将它们保存在您的客户端应用程序中,这样您就可以在它们过期之前重复使用它们,但不要使用任何可能被盗、被黑客入侵等的传统存储。
【讨论】: