keycloak 动态客户端注册registration_client_uri docker主机名覆盖
Posted
技术标签:
【中文标题】keycloak 动态客户端注册registration_client_uri docker主机名覆盖【英文标题】:keycloak dynamic client registration registration_client_uri docker hostname override 【发布时间】:2021-06-24 14:49:39 【问题描述】:我已经使用动态客户端注册在 Keycloak 中成功创建了一个客户端
响应正文包含:
"registration_client_uri":"https://127.0.0.1:8443/auth/realms...",
这是因为 Keycloak 是随 Docker 一起安装的,并且是 nginx 前端的。我想用实际的公共主机名替换 IP 地址/端口。
这方面的文档/配置在哪里?
我按如下方式启动keycloak:
docker run -itd --name keycloak \
--restart unless-stopped \
--env-file keycloak.env \
-p 127.0.0.1:8443:8443 \
--network keycloak \
jboss/keycloak:11.0.0 \
-Dkeycloak.profile=preview
在 keycloak.env 里面,我设置了KEYCLOAK_HOSTNAME=example.com
【问题讨论】:
如果registration_client_uri
应该指向同一个keycloak 服务器,您可以尝试指定没有主机地址的URI。只需/auth/realms...
【参考方案1】:
配置环境变量PROXY_ADDRESS_FORWARDING=true
,因为Keycloak在Nginx反向代理后面运行-https://hub.docker.com/r/jboss/keycloak/
启用代理地址转发
在代理后面运行 Keycloak 时,您需要启用代理地址转发。
docker run -e PROXY_ADDRESS_FORWARDING=true jboss/keycloak
【讨论】:
以上是关于keycloak 动态客户端注册registration_client_uri docker主机名覆盖的主要内容,如果未能解决你的问题,请参考以下文章
在多租户 stup 中使用 Spring Security OAuth 动态注册 OIDC 客户端