我正在尝试使用Postfix和Dovecot设置邮件服务器。
我的用户使用bcrypt哈希密码将我的用户存储在PostgreSQL数据库中。
经过一番研究,我找到了从PostgreSQL数据库中读取用户的方法,但密码以纯文本形式存储。
如何设置Dovecot以使用bcrypt哈希密码从PostgreSQL数据库中读取用户?
答案 0 :(得分:0)
Dovecot显然完全支持BLF-CRYPT
password scheme自最近的2.3发布以来。
PostgreSQL使用什么样的方案应该没什么区别,密码只是数据库中的文本字段,它以散列文本形式存储和检索。用于散列的方案由密码的前几个字符知道,例如$2a$
为bcrypt
。
可以使用doveadm -s BLF-CRYPT
来隐藏密码,并将输出复制到与用户对应的行中的数据库的密码字段中。
对于身份验证,dovecot
与postfix
一样,期望用户提供的SQL查询在其配置中包含一些记录的占位符(请参阅password_query
),因此不需要假设用户的表或视图的任何特定结构。