【问题标题】:Access the Keycloak admin console with an access token使用访问令牌访问 Keycloak 管理控制台
【发布时间】:2022-01-01 01:57:17
【问题描述】:

我的应用获得了一个访问令牌,可用于管理 keycloak 资源。

我可以将此令牌作为标头 Authorization:Bearer {token} 添加到用户信息端点的 GET 请求中:{server}/auth/realms/{realm}/protocol/openid-connect/userinfo 并且它工作正常。

但是,如果我将此标头添加到管理控制台{server}/auth/admin/{realm}/console/#/realms/{realm} 的 GET 请求中,我总是会被重定向到登录页面。

是否可以仅使用访问令牌访问管理控制台?

【问题讨论】:

    标签: keycloak


    【解决方案1】:

    Keycloak 管理控制台,例如{server}/auth/admin/{realm}/console/#/realms/{realm} 是一个单页应用程序 (SPA),因此它在浏览器中有自己的“状态”。

    页面本身不受保护(任何人都可以通过 curl 加载它——它只是一堆 css 和 js 文件)。加载到浏览器中的 SPA 应用程序检测到它没有登录状态,因此它会初始化自己的登录过程,然后在浏览器中创建登录状态。您不能仅通过访问令牌在浏览器中重新创建该 SPA 登录状态。您将需要重新创建所有 cookie、会话变量,也许还需要一些内存变量,因此在现实世界中这是不可能的。

    通常,在这种情况下:访问令牌用于 API 请求,而不是 UI 请求。

    【讨论】:

      【解决方案2】:

      Keycloak 有一个管理 REST API。 https://www.keycloak.org/docs-api/15.0/rest-api/index.html

      您可以使用该 API 以与管理控制台(位于 {server}/auth/admin/{realm}/console/ 的 javascript 应用程序)相同的方式操作 keycloak。

      【讨论】:

        猜你喜欢
        • 2018-04-09
        • 2018-05-11
        • 2018-07-27
        • 2020-09-29
        • 2021-03-10
        • 1970-01-01
        • 2021-04-19
        • 1970-01-01
        相关资源
        最近更新 更多