【问题标题】:With Keycloak, can you load an LDAP configuration from a file?使用 Keycloak,您可以从文件中加载 LDAP 配置吗?
【发布时间】:2020-03-15 04:57:18
【问题描述】:

当我运行 Keycloak 时,我希望它在运行时自动加载我的 LDAP 配置(用户联合),因此我不必手动输入它。有没有办法用 Keycloak 做到这一点?如果重要的话,我正在使用容器化版本 7.0.0。我也在独立模式下运行。谢谢

【问题讨论】:

    标签: configuration ldap keycloak federation


    【解决方案1】:

    您应该能够从包含 LDAP 配置的模板创建您的领域。

    【讨论】:

    • 有没有办法通过 CLI 导入领域,这样我就可以通过编程来完成它?
    • 如果你 POST/auth/admin/realms 使用有效的令牌,它应该可以工作。注意:我从未对此进行过测试,但我只使用了管理 ui。
    • 我刚试过这个,我跑了 kcadm.sh update /auth/admin/realms/master -f master.json 似乎没有任何效果
    • 您不想将此发布到主域。您正在尝试创建一个新领域,对吗?尝试在最后取下/master
    【解决方案2】:

    根据我从您的问题中了解到的情况,您希望使用 LDAP 作为您的用户联合服务器,因此您应该在启动 Keycloak 容器之前启动并运行 LDAP,并且容器应该以 LDAP 配置开始......这个,我先推荐一个方法,一开始有点麻烦,但是以后如何配置Keycloak会让你更好的掌握。

    1. 首先从网站下载 keycloak 并在不将其放入容器的情况下运行它。设置您的领域、客户端以及除 LDAP 配置之外的所有内容。
    2. Keycloak.json 文件复制到目录外,稍后我们将使用它
    3. 返回您的 Web 界面,配置您的 LDAP 服务器,然后保存配置。
    4. 现在再次复制keycloak.json 文件,并将两个版本放在文本比较工具中,例如Diffmerge,查看与您的LDAP 相关的配置差异,应将其添加到容器的keycloak.json

    使用 keycloak 容器的一个好习惯是创建您的整个配置,并替换默认配置,这样您的容器每次都会使用您的领域、客户端和所有其他预配置的属性启动。

    【讨论】:

    • 至此,我已经弄清楚如何在配置完 realm.json 文件后将其导出。我尝试使用管理员 CLI kcadm.sh update realms/master -f master.json 导入它,但实际上似乎并没有做任何事情。当我检查 Keycloak 上的管理员 gui 时,即使我可以在 json 中看到它,它也不会显示新的用户联盟。有什么想法吗?当我执行 kcadm.sh get realms/master 时,它也没有显示任何变化
    • 你指的这个keycloak.json在哪里?你说的是导出领域吗?
    • 对不起,keycloak.json 文件是整个 docker compose 安装的一部分,您可以在客户端的最后一个选项卡中找到整个领域设置,您可以从那里导出它。同时,我将寻找一种比 docker compose 设置更简单的方法来获取聚合的 keycloak 设置文件。
    【解决方案3】:

    好的,所以我想我想通了。在 Keycloak 中,我必须通过文档中指定的standalone.sh 脚本导出领域。使用 kcadm.sh admin CLI 并没有导出整个领域。然后我可以稍后使用管理 CLI 导入领域。感谢您的帮助,它使我得到了这个答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-07
      • 2013-04-26
      • 2015-01-29
      • 2015-04-19
      • 2019-02-16
      • 1970-01-01
      • 2013-07-31
      相关资源
      最近更新 更多