有没有办法将现有的 matrix-synapse 用户数据库迁移到 OpenLDAP?

有没有办法将现有的 matrix-synapse 用户数据库迁移到 OpenLDAP?

我正在寻找一种方法来迁移一个巨大的突触主服务器数据库迁移到 OpenLDAP,而无需重置用户密码。迁移到 LDAP 是必要的,因为我们希望将所有在线服务相互集成

因此,我正在寻找一种让 OpenLDAP 理解 Synapse 的密码哈希的方法。

Synapses hashing 算法解释这里

pw = unicodedata.normalize("NFKC", password)

hashed = bcrypt.hashpw(
    pw.encode('utf8') + password_pepper.encode("utf8"),
    bcrypt.gensalt(bcrypt_rounds),
).decode('ascii')

是否可以在 OpenLDAP 或任何其他开源 LDAP 服务器上实现这样的散列?

答案1

如果 bcrypt 是底层系统的有效算法,它应该作为OpenLDAP 的 CRYPT 密码存储方案

例如,如果你现有的密码哈希看起来像$2a$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy您应该能够将userPasswordOpenLDAP 的属性设置为{CRYPT}$2a$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy,然后进行身份验证。
(如果您在命令行上执行此操作,请确保$text在输入数据库之前不会被解释为 shell 变量。)

相关内容