【问题标题】:Reference token management参考代币管理
【发布时间】:2022-01-18 00:42:11
【问题描述】:

引用令牌作为存储在身份服务器中的访问令牌的标识符。管理它的最佳做法是什么?

  1. 声明已更改,如何更新访问令牌以反映 改变。我发现当前的访问令牌不会针对这种情况自动更新,所以想知道如何在访问令牌上实现声明更新。
  2. 它应该有什么合适的生命周期(15 天或更长时间?),一旦过期到 使用刷新令牌重新发出它,或者只是让最终用户 再次登录?
  3. 是否需要通过自省端点从 javascript客户端(Angular)?我知道 API 需要支持 通道来验证它只是不确定 javascript 方面。

【问题讨论】:

    标签: identityserver4 access-token


    【解决方案1】:

    要获得自动刷新令牌管理,我建议您使用 IdentityServer 作者的IdentityModel library

    您可以在客户端定义中将 UpdateAccessTokenClaimsOnRefresh 标志设置为 true,然后您将在刷新访问令牌时获得更新的声明。

    对于在浏览器中处理令牌,我建议观看此视频 alert‘OAuth 2 0’; // The impact of XSS on OAuth 2 0 in SPAs 然后访问Backend for Frontend (BFF) Security Framework library

    【讨论】:

    • 感谢您的信息!参考令牌作为标识符我无法检查它的到期时间,因为它本身不包含声明信息,我的问题是当其关联的访问令牌到期时如何更新它?在 Angular 应用或 IdentityServer 端进行续订?
    • 通常每次使用刷新令牌获取新的访问令牌时都会得到一个新的刷新令牌,并且您只需继续使用刷新令牌,直到它被 IdentityServer 拒绝。最好在后端进行更新。此外,将 IdentityServer 放置在自己的服务中并将客户端/API 单独放置是一种很好的做法。如果您喜欢,请随时接受我的回答。
    • 假设访问令牌在续订过程开始之前已过期,这可能是因为用户有一段时间不活动并且它不会触发刷新令牌来更新后端的访问令牌。会发生什么 - 是否可以使用过期的访问令牌进行更新以触发新访问令牌的刷新令牌更新过程?
    • 您可以跟踪客户端中当前访问令牌的过期时间(您在刷新时将其作为单独的参数接收),如果它即将过期或已过期,您可以这样做刷新周期。或者,您可以继续使用访问令牌,如果失败,则刷新它并重试。有不同的方法来处理这个问题。
    猜你喜欢
    • 1970-01-01
    • 2016-08-20
    • 1970-01-01
    • 1970-01-01
    • 2021-10-05
    • 2021-07-27
    • 2011-07-24
    • 2015-01-17
    • 1970-01-01
    相关资源
    最近更新 更多