【问题标题】:How to access KeyCloak endpoints via proxy API如何通过代理 API 访问 KeyCloak 端点
【发布时间】:2020-06-18 10:18:53
【问题描述】:

我目前有以下架构

APP -> API -> KeyCloak

我希望 APP 能够向我的 API 发送请求,然后在内部将某些请求代理到 KeyCloak。例如,我想通过我的 API 向 KeyCloak 中的 /userinfo 端点发出请求。如果我能弄清楚这一点,我就可以执行更复杂的功能。

APP -> http://api:port/api/userinfo API -> http://keycloak:port/auth/realms/quartech/protocol/openid-connect/userinfo

我有一个有效的 JWT Bearer 令牌。因为我可以直接成功地向 KeyCloak 发出请求,但是如果我尝试通过我的 API 发出请求,它会返回 401。即使它使用的是相同的 JWT Bearer 令牌。

我认为这与配置 KeyCloak 客户端以允许来自 API 的请求有关。但是目前我还没有弄明白。

【问题讨论】:

  • 我已将以下标头添加到 API 代理请求中,但仍然无法正常工作。 Authorization: Bearer [token] X-Forwarded-For: [original host] X-Forwarded-Proto: [original scheme] X-Forwarded-Port: [original port] ProxyPreserveHost: On
  • 当我开始使用代理/负载均衡器时,我必须为我的 Keycloak docker 容器添加 PROXY_ADDRESS_FORWARDING=true。以下是可能有用的文档:Setting Up a Load Balancer or Proxy

标签: api oauth proxy openid-connect keycloak


【解决方案1】:

我发现它需要一个 DNS 条目才能在 Docker 容器中进行本地开发。

我编辑了hosts 文件并添加了127.0.0.1 keycloak,然后添加了al

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-05
    • 2020-04-22
    • 1970-01-01
    • 2020-09-02
    • 1970-01-01
    • 2018-06-24
    相关资源
    最近更新 更多