我们在SPA中使用隐式流设置了Auth0与它们的锁小部件v11。在Auth0管理门户中的应用程序设置中,JWT过期时间设置为15分钟,我们在web应用程序中使用沉默身份验证定期获得一个新令牌。
该流运行良好,令牌按其应有的方式过期。我们的问题在于userinfo端点。Auth0锁小部件在内部对userinfo端点执行XHR请求。在安全筛选过程中,发现如果我们记录了这样的请求,然后在几个小时后在邮递员中再次请求,端点仍然会响应用户的详细信息,如姓名和电子邮件。在该请求中发送的承载令牌与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过期设置相同的过期时间吗?
发布于 2019-08-29 19:59:13
不幸的是,该令牌过期是为端点设置的,不能更改。这个医生提供了一个答案。
https://stackoverflow.com/questions/57710974
复制相似问题