密钥斗篷管理REST-API同步联盟映射程序



我使用带有LDAP用户联合的Keycloft 9.0.3,编辑模式为WRITEABLE,导入用户为on。我正在开发一个春季启动应用程序,该应用程序应调用Keycapt REST API来创建、更新、删除LDAP中的用户。我还在我的用户联盟中创建了"组ldap映射器",将ldap组映射到Key斗篷组,反之亦然。

我的要求是通过REST API创建和删除Keycapk-group,然后使用上面的映射器将它们映射到LDAP中的组。当我的应用程序调用POST/{realm}/groupsKeycloft时,Keycloft只在Keycloft DB中创建组,除非将该组分配给某个用户,否则不会同步到LDAP。这其实不是什么大问题。真正的问题是,当我的应用程序通过DELETE/{realm}/groups/{id}删除组时。这些组将从Keycloft DB中删除,但不会从LDAP中删除。一个可接受的解决方法是调用POST/{realm}/user storage/{parentId}/mappers/{id}/sync,它可以同步组并执行任务。

这个解决方法的问题是,除了在spring应用程序中对联合映射器id({id}(进行硬编码外,没有其他方法可以获得它。没有REST调用以程序方式检索此id。

知道怎么解决这个问题吗?

我发现了如何通过编程找到联盟和组ldap映射器的id,以便在调用POST/{realm}/user storage/{parentId}/mappers/{id}/sync中使用它们。

可以调用GET/{realm}/组件。这将返回联邦和映射程序。在我的情况下,我可以从UserRepresentation中找到联盟id,然后用它来过滤组件(parent={federation-id}(。根据文档,还有一个类型Query,但我无法计算出正确的值。

最新更新