【问题标题】:Keycloak Docker import LDAP bind credentials without exposing themKeycloak Docker 导入 LDAP 绑定凭据而不暴露它们
【发布时间】:2020-07-01 16:36:02
【问题描述】:

我有一个 keycloak docker 映像,我从一个 json 文件导入我的领域的配置。而且效果很好,到目前为止一切顺利。

但在我的配置中有一个 LDAP 提供程序,它没有正确的凭据(绑定 DN 和绑定凭据)。出于安全目的,它们没有插入 JSON。所以我必须在启动后在管理控制台中手动插入凭据。

我现在正在尝试找到一种安全的方法来自动执行此操作,而无需以明文形式公开凭据,这样我们就不必在每次启动后手动插入凭据。

我曾考虑使用 shell 脚本或其他方式将它们插入到容器内的 JSON 文件中,然后在启动 keycloak 时导入生成的文件。问题是凭据随后将以明文形式在容器内的 JSON 文件中公开。所以任何有权访问容器的人都可以看到它们。

我正在考虑根据环境变量在 JSON 文件中插入凭据(这些凭据安全地存储在 Gitlab 运行器中并隐藏在日志中),启动 keycloak,然后在 keycloak 成功启动后即时删除 JSON 文件而不暴露任何层中的凭据。但我找不到这样做的方法。

谁能想到如何实现这一点?

任何帮助将不胜感激。

【问题讨论】:

    标签: docker security ldap passwords keycloak


    【解决方案1】:

    解决方法是将您的 keycloak 实例绑定到具有持久卷 (examples from keycloak here) 的外部数据库,并在 docker-compose 中将迁移策略从 OVERWRITE_EXISTING 更改为 IGNORE_EXISTING (documentation here),如下所示:

    command: '-b 0.0.0.0 -Dkeycloak.migration.strategy=IGNORE_EXISTING'

    通过这种方式,您的配置是持久的,因此您只需在第一次输入您的 LDAP 凭据,不需要对管道进行复杂的操作。

    【讨论】:

      猜你喜欢
      • 2016-03-05
      • 2018-09-03
      • 2016-05-30
      • 1970-01-01
      • 1970-01-01
      • 2019-10-24
      • 2019-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多