Keycloak 反向通道注销 URL 机制未按预期工作

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

我目前正在尝试让反向通道注销正常工作。通过 Keycloak 允许 SSO 的系统复杂且过时,并且需要自行管理用户。这就是为什么 Keycloak 只与登录相关 - 使访问令牌失效甚至在 Docker 中终止 Keycloak 都不会导致身份验证错误。

就我对反向通道注销的理解而言,它正是针对这个用例而设计的。 OAuth 2.0 规范是 OpenID Connect(又被 Keycloak 使用)的基础,其中反向通道注销定义如下:

enter image description here https://openid.net/specs/openid-connect-backchannel-1_0.html

Keycloak 为每个客户端提供反向通道注销 URL 的输入。因此,我创建了一个 POST 端点并在 Keycloak 中提供了该端点的 URL,但没有任何反应。我被困在这里了。

oauth-2.0 single-sign-on keycloak openid-connect
1个回答
0
投票

如果您将 Keycloak 作为 Docker 容器运行,并且在本地主机上运行客户端应用程序,请确保使用

host.docker.internal
而不是
localhost
作为
Backchannel Logout URL
。其他 URL 可以保留为 localhost。

如果您的端点仍未被呼叫,请确保您的端点已正确配置为接受来自 Keycloak 的请求,而无需额外的身份验证或授权。

如果跨域访问您的端点,请确保正确配置 CORS(跨源资源共享)以允许来自 Keycloak 的请求。

对于 SpringBoot 应用程序,您可能还需要禁用 CSRF 保护:

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http.csrf(AbstractHttpConfigurer::disable);
        ...
    }
© www.soinside.com 2019 - 2024. All rights reserved.