首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ASP.NET客户端web应用程序上存储访问和刷新令牌的位置--调用REST

在ASP.NET客户端web应用程序上存储访问和刷新令牌的位置--调用REST
EN

Security用户
提问于 2015-09-18 17:09:02
回答 1查看 43.2K关注 0票数 19

我在ASP.NET中创建了一个Web,它充当Server数据库中报表数据的入口点。该服务有一个“令牌”端点,通过ASP标识对用户进行身份验证,并返回20分钟访问和2周刷新令牌。

这个API只能通过我们自己的应用程序和产品来访问。我们将编写一个安卓应用程序、iOS应用程序和ASP.NET web应用程序,该应用程序将使用上述Web进行身份验证并获取数据。我将负责ASP.NET客户端web应用程序和API。我们正在构建这些应用程序的内部为我们的客户登录和使用。我公司以外的任何第三方都不会通过他们自己的应用程序调用我们的API。

对于我的客户端ASP.NET web应用程序,我是用ASP.NET MVC编写的,到目前为止它还没有真正的数据库,因为它可以与ASP.NET进行通信。

我从它作为一个基础开始,现在我需要将这个works...but文件转换成MVC中的ASP.NET web应用程序,并找出在哪里以及如何存储访问令牌和刷新令牌。http://blog.rfaisal.com/2014/01/14/building-your-own-api-and-securing-it-with-oauth-2-0-in-asp-net-webapi-2/

我的问题是:

  1. 据我所知,为了执行CRUD操作,我需要在随后调用API时传递访问令牌。在记录in...from、C#代码或JavaScript时,我应该在哪里提出web请求,以便在web应用程序上对用户进行身份验证,如上面提到的教程所示?我之所以这样问是因为我意识到我需要JS Ajax调用中的访问令牌,但我听说刷新令牌需要更“安全”,而服务器代码中的调用可能会给我提供更安全的选择吗?
  2. 我将访问令牌存储在哪里?在JavaScript或服务器中创建的cookie中?在JavaScript本地存储器里?在一个可以传递给JavaScript的会话变量中?
  3. 我在哪里存储刷新令牌?在访问令牌即将过期之前,我需要这个来更新它。我已经在谷歌上搜索过,但在网上找不到一个很好的ASP.NET解决方案,可以从我消费的web应用程序的角度来告诉我在哪里或者如何存储。从服务器创建的cookie,保存在web应用程序使用的SQL DB中的会话变量中?

我急需帮助,这让我精神错乱,晚上睡不着觉。希望有人能提供一个完整的,简单的例子,并充分描述了我需要做什么。

EN

回答 1

Security用户

发布于 2015-09-21 18:59:30

1.在哪里验证用户的身份?

如果需要进行身份验证的是用户,那么您需要的是前端的一些内容。从前端,您可以使用用户凭据向后端发布一篇文章。您可以验证用户凭据,并在知道凭据的情况下发出访问证书/刷新令牌对。您必须始终通过后端来验证用户的身份。您提到本教程是在JS中完成的,但它没有。它会发布到一个登录表单。这篇文章是在JS中启动的,但它会转到后端。

2.我在哪里存放这些资料?

可以使用与普通身份验证cookie相同的方式存储访问记录。您有各种选项(仅限http的安全cookie、本地存储、会话存储等)。在最简单的场景中,您只需将其存储在cookie中,以便将其与每个请求一起发送。然而,对于移动应用程序来说,将其存储在LocalStorage中可能更容易一些。

3.在哪里存储刷新令牌?

这在很大程度上取决于应用程序。不久前,我为移动应用程序编写了问同样的问题 (请务必阅读评论)。您应该将刷新令牌存储在安全的地方。对于您将要开发的应用程序,您可以遵循我链接到的答案中的建议,即:

  • 将刷新令牌存储在LocalStorage中
  • 使用Android/IOS提供的API将加密的刷新令牌存储在文件系统的某个位置。将加密密钥存储在本地存储中。(或者相反)。

对于其他类型的应用程序,还有其他的可能性。从安全的角度来看,从安全的角度来看,在localstorage中存储访问令牌和刷新令牌可能都是错误的,但是当令牌正在传输时,攻击者可能会比访问本地存储更幸运地拦截该令牌。其他的,有时更有异国情调的建议是这里 (例如IOS安全存储)。

附加信息

  • 我个人非常喜欢这一系列博客。请注意,它们可能会开始变得有点过时,但它们包含了大量关于REST设置的信息。
  • 请不要忘记实现所有其他安全控制,我没有提到这一点,因为这会给答案蒙上阴影。应该实现HTTPS、http-专用cookie、安全cookie、XSS预防等等,否则您的令牌将被窃取的速度远远超过您阅读此答案所需的时间。
票数 15
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/100600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档