出于安全和隐私原因,我想设置自己的服务器来同步 Firefox 浏览器中的书签和历史记录。我们有同步 1.1它支持 MySQL 或 LDAP 后端进行用户身份验证 - 至少根据 Mozilla 文档。尽管链接的SQLAlchemy 的引擎文档不包含任何有关如何使用 LDAP 的信息。仅列出了 MySQL 或 Postgres 等关系数据库,也其他方言. 整个文档甚至没有包含这个术语LDAP。
在同步 1.5这是当前支持的版本(1.1 自 Firefox 29 起已弃用),我找不到有关 LDAP 的任何信息。Firefox 的相关帐户服务器。使用 LDAP 作为帐户后端非常方便,因为我的所有自托管应用程序(例如 Nextcloud)都兼容。这可以避免在密码更改等情况下弄乱许多帐户。
如何使用 LDAP 作为 Firefox 同步的用户存储?
答案1
FireFox 同步的用户存储是一个专有的、基于证书的系统,需要“Firefox 帐户服务器”。
看这里: https://mozilla-services.readthedocs.io/en/latest/howtos/run-fxa.html#howto-run-fxa
该协议与 LDAP 不兼容。使用 LDAP 身份验证的唯一方法是大幅更改 Firefox 帐户服务器的代码,使其能够以某种安全的方式将用户\密码组合传递给 LDAP 服务器,并使用该结果发出令牌,而不是检查其自己的内部数据库。
另一种选择是使用 LDAP 中的条目填充 Firefox 帐户服务器,但密码不会同步。
笔记:
仍需记录的事情
如何与自托管账户服务器进行互操作
答案2
实际上似乎有一种方法可以做到这一点,并且有记录: http://moz-services-docs.readthedocs.io/en/latest/server-devguide/configuration.html#authentication
我没有亲自尝试过,但据我所知,您必须像这样使用 LDAP 身份验证后端:
[auth]
backend = ldap
ldapuri = ldap://localhost:390
ldap_timeout = -1
ldap_use_pool = true
ldap_pool_size = 100
use_tls = false
bind_user = "cn=admin,dc=mozilla"
bind_password = admin
admin_user = "cn=admin,dc=mozilla"
admin_password = admin
users_root = "ou=users,dc=mozilla"
sqluri = mysql://sync:sync@localhost/sync
pool_size = 100
pool_recycle = 3600
cache_servers = 127.0.0.1:11211
不过你需要并行运行一个 mysql 服务器