我在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/
我的问题是:
我急需帮助,这让我精神错乱,晚上睡不着觉。希望有人能提供一个完整的,简单的例子,并充分描述了我需要做什么。
发布于 2015-09-21 18:59:30
如果需要进行身份验证的是用户,那么您需要的是前端的一些内容。从前端,您可以使用用户凭据向后端发布一篇文章。您可以验证用户凭据,并在知道凭据的情况下发出访问证书/刷新令牌对。您必须始终通过后端来验证用户的身份。您提到本教程是在JS中完成的,但它没有。它会发布到一个登录表单。这篇文章是在JS中启动的,但它会转到后端。
可以使用与普通身份验证cookie相同的方式存储访问记录。您有各种选项(仅限http的安全cookie、本地存储、会话存储等)。在最简单的场景中,您只需将其存储在cookie中,以便将其与每个请求一起发送。然而,对于移动应用程序来说,将其存储在LocalStorage中可能更容易一些。
这在很大程度上取决于应用程序。不久前,我为移动应用程序编写了问同样的问题 (请务必阅读评论)。您应该将刷新令牌存储在安全的地方。对于您将要开发的应用程序,您可以遵循我链接到的答案中的建议,即:
对于其他类型的应用程序,还有其他的可能性。从安全的角度来看,从安全的角度来看,在localstorage中存储访问令牌和刷新令牌可能都是错误的,但是当令牌正在传输时,攻击者可能会比访问本地存储更幸运地拦截该令牌。其他的,有时更有异国情调的建议是这里 (例如IOS安全存储)。
https://security.stackexchange.com/questions/100600
复制相似问题