【问题标题】:Asp.net OWIN Identity refresh tokens and token expirationAsp.net OWIN Identity 刷新令牌和令牌过期
【发布时间】:2014-09-18 08:38:23
【问题描述】:

我正在尝试找到有关在新的 ASP.net 身份框架中使用默认 OAuth Bearer 令牌提供程序来处理单页 JavaScript 应用程序中的令牌过期和刷新令牌的良好指导。我了解以下几点-

  • 应指定较短的 access_token 生命周期(默认为 14 天,但最好是 5-20 分钟)

  • 您可以指定一个继承自 IAuthenticationTokenProvider 的 RefreshTokenProvider

  • 刷新令牌将被添加到来自 OWIN 端点的 OAuth 令牌响应中

  • 您现在理论上可以使用刷新令牌和“refresh_token”授权类型来请求新令牌

我不明白的是这个-

  • 在令牌响应中发回刷新令牌似乎不安全?如果中间有人拦截,他们拥有请求新令牌所需的一切。

  • 授予刷新令牌通常与验证客户端 ID 和客户端密码相关联。据我所知,不可能将这些安全地存储在 JS SPA 中。

所以现在我不知道从哪里开始......我所能做的就是强制我的用户在令牌到期后注销并重新登录,重新发送初始密码授权。

【问题讨论】:

    标签: asp.net authentication oauth-2.0 owin asp.net-identity-2


    【解决方案1】:

    在令牌响应中发回刷新令牌似乎不安全?如果 一个人在中间拦截,他们有他们需要的一切 请求新的令牌。

    SSL

    授予刷新令牌通常与验证客户端 ID 和 客户机密。据我所知,无法安全存放 这些在 JS SPA 中。

    你在这里是绝对正确的。 ClientSecret 不能保存在客户端上。因此,您可以简单地拥有一个服务器端端点,该端点将从当前用户会话中返回一个新的访问令牌。这里的想法是将刷新令牌保留在服务器上,当客户端需要新的访问令牌时,它会请求此端点。显然客户端需要进行身份验证,这可以通过普通的 ASP.NET 身份验证来实现。

    【讨论】:

    • SSL 将被使用,所以你的意思是只使用以前的 access_token 用户已经必须在到期窗口内创建另一个?
    • 这可能是一种方法,是的。
    猜你喜欢
    • 1970-01-01
    • 2017-10-28
    • 1970-01-01
    • 2019-01-24
    • 2020-11-11
    • 2018-06-05
    • 1970-01-01
    • 2019-07-30
    • 2017-10-19
    相关资源
    最近更新 更多