【发布时间】: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