Keycloak 不会在开发中重定向

Posted

技术标签:

【中文标题】Keycloak 不会在开发中重定向【英文标题】:Keycloak doesn't redirects in development 【发布时间】:2020-03-26 13:15:15 【问题描述】:

我刚刚在端口 10080 上使用 docker 容器第一次启动 Keycloak(新手)。并设置了一个新领域、客户端、用户并将其附加到角色/组。到目前为止一切都很好,并且可以正常工作。

在 Keycloak 的客户端设置中,我将我的应用程序的 Valid Redirect URIs 设置为 http://localhost:8080/*,当我调用我的网络服务器的身份验证页面时,我收到来自 Keycloak Invalid parameter: redirect_uri 的错误消息,如果我将URI 设置为* 其工作但Keycloak 不会重定向到端口8080 并重定向到:10080/oauth?state=1c7,如果我只是用我的网络服务替换端口,它会显示我设置的身份验证令牌用于测试以显示来自 Keylcloak 的有效负载。

重定向不起作用!如果我为我的用户输入了错误的凭据,它可以完美地处理错误消息,这是预期的行为。

我还在客户端设置中将 root 和 admin url 设置为保存端¯_(ツ)_/¯

我的 docker-compose:

  keycloak:
    image: jboss/keycloak:8.0.0
    container_name: keycloak_abc
    ports:
      - "10080:8080"
    environment:
      - KEYCLOAK_USER=admin
      - KEYCLOAK_PASSWORD=admin
    networks:
      - abc-network

使用有效用户登录并将重定向 url 设置为 * 后来自 Keycloak 的响应: http://localhost:10080/oauth?state=768038c4a2adb8dd&session_state=e64e00d9-f3d0-4c0a-9df0-42cab897be08&code=47cd4e1c-ff62-46c1-a681-182a83b6aeb4.e64e00d9-f3d0-4c0a-9df0-42cab897be08.7006377e-2f0d-4b56-b3e5-991f8036fb11

我从网络流量上传了一段录音:https://pastebin.com/v3yqcUh7

【问题讨论】:

你能告诉我们你的请求的网址吗?重定向 url 应该在 url 参数中。 @andrija 我已经更新了 Q 您发送了错误的返回网址:redirect_uri=http%3A%2F%2Flocalhost%3A10080%2Foauth 您应该发送应用程序的地址,而不是 Keycloak 地址。 它的工作现在感谢您的帮助! 【参考方案1】:

它正在工作!

    install(Authentication) 
        oauth(keycloakOAuth) 
            client = HttpClient(Apache)
            providerLookup =  keycloakProvider 
            urlProvider =  "http://localhost:8080/oauth" 
        
    

我已将 urlProvider 从 /oauth 更新为 http://localhost:8080/oauth,现在它是例外。

┳━┳ヽ(ಠل͜ಠ)ノ

【讨论】:

以上是关于Keycloak 不会在开发中重定向的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Spring Boot 不会重定向到 403 上的 Keycloak 登录页面?

在 CodeIgniter 3 中重定向后 Flashdata 未清除

反应:在重定向到 Keycloak IDP 页面之前阻止显示应用程序

在 react-router-dom 中重定向?

使用 Typescript 在 React 中重定向

如何在 Laravel 中重定向后设置选择值