如何强制在 Keycloak 中创建新会话以使用 OIDC 协议对 CLI 应用程序进行身份验证

How to force creating a new session in Keycloak to authenticate CLI apps using OIDC Protocol

我有一个使用 Keycloak 成功进行用户管理和身份验证提供程序的网络应用程序。

相同的应用程序需要 CLI 工具来执行某些操作(类似于 gcloud CLI + 网络控制台)。

我已经使用 OIDC 授权代码流实现了 CLI 部分,它打开浏览器供用户进行身份验证。它就像一个魅力。

但是,如果用户从浏览器注销,Keycloak 将使会话无效,cli 将不得不重新验证以获得新的 access_token 和 refresh_token。

我的问题是,如何强制 CLI 应用程序登录创建一个独立于浏览器会话的新会话。

或者,如果不可能,实现此目标的正确方法是什么?

最终,我发现我只需将范围 offline_access 添加到我请求的范围列表中。然后 Keycloak 将创建一个新的离线会话(该功能的名称不好,离线只是意味着用户不必在场,但所有刷新都以相同的方式发生)

https://github.com/keycloak/keycloak-documentation/blob/main/server_admin/topics/sessions/offline.adoc