OpenID Connect - 刷新 ID 令牌

问题描述 投票:0回答:1

我一直在为本机应用程序(具有服务器组件)实现 OpenID Connect。我正在模仿本机应用程序的授权代码流程。在OIDC流程之后,服务器端接收ID令牌、Accesstoken和刷新令牌。服务器验证 ID Token 并将应用程序会话返回给本机客户端。

我不清楚此流程中刷新令牌的用例。在这种情况下支持刷新 ID 令牌是否有意义?即,如果应用程序会话过期,并且客户端将过期的应用程序会话传递给服务器,则服务器可以使用刷新令牌获取刷新令牌,并从 OAuth 服务器获取新的 ID 令牌并创建新的应用程序会话。这种方法似乎与拥有长期存在的应用程序会话一样好(不完全相同),因为应用程序始终可以更新应用程序会话来代替其过期的会话。

我尝试了 Okta 开发者控制台,它支持刷新 ID 令牌。但我不清楚刷新 ID 令牌的用例。

token openid-connect refresh-token
1个回答
0
投票

在 OAuth 中,ID 令牌代表身份验证事件的证据。同时,刷新令牌代表客户端与 API 的会话的生命周期。

发生令牌刷新时,颁发新的 ID 令牌是没有意义的,如OpenID Connect 规范的相关部分所述。授权服务器可以选择在刷新响应中返回 ID 令牌。根据我的经验,这样做的唯一真正用例是启用 OAuth 库,该库期望所有 3 个令牌都出现在令牌响应中。

Web 客户端通常使用后端在评估 ID 令牌后引导基于 cookie 的会话。 Cookie 已加密并包含或引用底层令牌。令牌刷新后,Cookie 可能会被重写,但客户端不能仅仅因为获得新的 ID 令牌而使用 API 扩展自己的会话。

© www.soinside.com 2019 - 2024. All rights reserved.