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 客户端

如何在 Flask-Appbuilder 中为 OAuth2.0 使用自定义提供程序 [keycloak]?

Keycloak : 当新用户注册时通过 API 获得通知

撤销 Keycloak 访问令牌

Keycloak 安全用户注册

如何在@WebFluxTest 中禁用 oauth2 客户端注册?