我们使用SPA中的“隐式流程”为其Lock小部件v11设置了Auth0。在Auth0管理门户的“应用程序”设置中,我们将JWT的过期时间设置为15分钟,并在网络应用程序中使用了“静默身份验证”来定期获取新令牌。
该流程运行良好,令牌已到期。我们的问题在于userinfo端点。 Auth0 Lock小部件正在内部对userinfo端点进行XHR请求。在安全检查过程中,发现如果我们记录了这样的请求,然后在几个小时后又在邮递员中提出了请求,则端点仍会以用户详细信息(例如姓名和电子邮件)进行响应。该请求中发送的承载令牌与到期时间为15分钟的令牌不相同。
这对我们来说是一个安全问题,因为在用户选择注销后很长一段时间就可以获得基本的用户信息。
在Auth0管理门户中,我尝试将“租户设置”>“高级”下的“不活动超时” /“需要之后登录”设置为1分钟。我还尝试降低“应用程序”设置下的“ JWT到期时间”。这些设置都不会影响仍会返回用户详细信息的userinfo请求。
对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的到期日设置不同吗?
答案 0 :(得分:1)
不幸的是,为端点设置了令牌过期,并且不能更改令牌过期。该文档提供了答案。