1

我们在 SPA 中使用隐式流设置了 Auth0 和他们的 Lock 小部件 v11。我们在 Auth0 管理门户的应用程序设置中将 JWT 过期时间设置为 15 分钟,并且我们在 Web 应用程序中使用静默身份验证来定期获取新令牌。

该流程运行良好,令牌应到期。我们的问题在于 userinfo 端点。Auth0 Lock 小部件在内部向 userinfo 端点发出 XHR 请求。在安全检查期间发现,如果我们记录了这样的请求,然后在几个小时后在 Postman 中再次请求,端点仍然会以用户详细信息(例如姓名和电子邮件)进行响应。在该请求中发送的不记名令牌与以 15 分钟到期时间发出的不记名令牌不同。

这对我们来说是一个安全问题,因为在用户选择退出后很长时间才能获得基本的用户信息。

在 Auth0 管理门户中,我尝试将租户设置 > 高级下的“不活动超时”/“需要登录后”设置为 1 分钟。我还尝试在应用程序设置下降低“JWT 过期”。这些设置都不会影响仍以用户详细信息响应的用户信息请求。

对 userinfo 端点的请求示例:

GET https://<tenant>.eu.auth0.com/userinfo

Request headers:
Authorization:Bearer <some token with length of 32>

响应示例:

{
    "sub": "auth0|xxxxxxxxxxxxxxxxxx",
    "nickname": "John",
    "name": "John Doe",
    "picture": "xxxxxxxxxxxx",
    "updated_at": "2019-08-29T12:32:39.352Z",
    "email": "user@example.com",
    "email_verified": true
}

是否有任何设置可以控制发送到 userinfo 的不记名令牌的到期?它不应该与应用程序 JWT 过期设置具有相同的过期时间吗?

4

1 回答 1

1

不幸的是,令牌过期是为端点设置的,不能更改。该文档提供了答案。

https://auth0.com/docs/tokens/guides/access-token/set-access-token-lifetime#access-token-lifetime-for-the-oidc-user-profile-endpoint

于 2019-08-29T19:59:13.990 回答