我正在使用带有 LDAP 用户联合的 Keycloak 9.0.3,编辑模式 = WRITABLE 并且导入用户 = on。我正在开发一个 Spring Boot 应用程序,它应该调用 Keycloak REST API 来创建、更新、删除LDAP 中的用户和组。我还在我的用户联合中创建了“group-ldap-mapper”,以将 LDAP-Groups 映射到 Keycloak-Groups,反之亦然。
我的要求是通过 REST API 创建和删除 Keycloak-groups,并使用上面的映射器将它们映射到 LDAP 中的组。当我的应用程序调用POST /{realm}/groups Keycloak 只是在 Keycloak-DB 中创建组并且不会同步到 LDAP,除非该组被分配给某个用户。这其实不是什么大问题。真正的问题是当我的应用程序通过DELETE /{realm}/groups/{id}删除组时。这些组会从 Keycloak-DB 中删除,但不会从 LDAP 中删除。一个可接受的解决方法是调用POST /{realm}/user-storage/{parentId}/mappers/{id}/sync同步组并完成工作。
此解决方法中的问题是,除了在 Spring 应用程序中对其进行硬编码之外,无法获取联合映射器 ID ({id})。没有 REST-Call 以编程方式检索此 id。
知道如何解决这个问题吗?