我们目前有一个 Keycloak 领域,我们希望将所有现有用户导出到 LDAP(其密码完好无损),因此我们可以为不支持 OpenID Connect 或 SAML 但支持 LDAP 的其他位置添加登录支持。
鉴于密码凭证使用 pbkdf2-sha256 算法存储在 Keycloak MySQL 用户数据库中,我不得不使用 OpenLDAP 2.4.47 和 contrib 模块来支持 LDAP 端的这一点(我也相信我已经启用了这个模块在配置中)。
我无法使用此处描述的格式将现有的(从 Keycloak)转移到 LDAP:https : //github.com/hamano/openldap-pbkdf2
请原谅我使用 PHP,但它是我目前最熟悉的编程语言。
我已经尝试使用 HASH_ITERATIONS、SALT 和 VALUE 字段以及在 PHP 手册中 base64_encode 下的注释中提供的 base64url_encode 自定义函数来制作“改编的 Base64”字符串,并在以下情况下提供构建的字符串作为 userPassword 字段创建 LDAP 用户。用户已在 LDAP 中成功创建,但我无法使用我刚创建的用户的凭据对 LDAP 进行身份验证。
/*
This example migrates a single user, to be adapted to a loop later, if it works.
NOTE: KC_* constants are defined in an external config.php file, such …Run Code Online (Sandbox Code Playgroud)