小编Ive*_*dea的帖子

在 keycloak 守门员后面运行用户界面和 API

keycloak 和身份验证的新手,很抱歉遗漏了一些明显的东西,并且没有使用准确的术语。

我正在尝试运行一个与 Java (dropwizard) API 对话的简单 Angular UI。我希望这两个都需要身份验证。我(几乎)能够使用单个领域和机密客户端让它们在 keycloak 和 keycloak 看门人后面正常运行。在这种情况下,gatekeeper 有upstream-url一个 traefik 实例,然后路由到 UI 或 API docker 容器。就像是:

Gatekeeper upstream-url ----> Traefik (my.domain/*)  ----> UI (my.domain/ui/*)
                                                     \---> API (my.domain/api/*)
Run Code Online (Sandbox Code Playgroud)

这工作正常,直到会话超时,并且当(已加载)UI 页面上的用户单击尝试发送 ajax 请求以命中 API 的按钮时(例如https://my.domain/api/getstuff),然后Gatekeeper 将其重定向(即301)到keycloak 登录页面。这个重定向对于 API 请求来说有点荒谬......

在这一点上,我的 UI 和 API 项目都是身份验证不可知的(即它们还没有运行任何适配器等 - 我现在依靠 docker 设置来防止“直接”访问 UI 和 API。我会一旦我需要了解有关用户的信息,就添加适配器)。我可以在https://www.keycloak.org/docs/latest/securing_apps/index.html#configuration-options中看到autodetect-bearer-only似乎描述我的问题的选项,即

它允许您将 Web 应用程序的未经身份验证的用户重定向到 Keycloak 登录页面,但将 HTTP 401 状态代码发送到未经身份验证的 SOAP 或 REST 客户端,因为他们无法理解重定向到登录页面

但似乎适用于适配器层,即在我的场景中在网守之后。 似乎也很相似。

我想我希望对https://my.domain/ui/*的未经身份验证(例如从未登录或超时)的访问请求被重定向到 …

keycloak keycloak-gatekeeper

7
推荐指数
1
解决办法
731
查看次数

标签 统计

keycloak ×1

keycloak-gatekeeper ×1