飞书通讯录 ↔ LDAP 同步工具的首个提交。 - internal/feishu: 飞书通讯录客户端、快照与重试 - internal/ldaplib: LDAP 读写与批量操作 - internal/mapping: 飞书部门/用户到 LDAP 条目的映射 - internal/syncer: 同步计划生成、执行与调度 - internal/store: SQLite 台账 - internal/server + internal/webui: 管理后台与内嵌前端产物 - internal/password: SSHA 口令处理 - config.example.yml / Dockerfile / Makefile / web 前端源码 真实凭据(config.yml)、运行时数据(data/、backup/)与构建产物(bin/)不入库。
75 lines
2.9 KiB
YAML
75 lines
2.9 KiB
YAML
# idsync 配置示例。复制为 config.yml 后按实际环境修改。
|
||
#
|
||
# 注意:本工具不参与认证链路,用户登录、密码重置、发信全部由 Authelia 负责。
|
||
# 它只把飞书通讯录物化到 OpenLDAP,因此这里没有也不需要任何认证相关配置。
|
||
|
||
system:
|
||
# debug 会输出更详细的日志;生产环境用 release
|
||
mode: release
|
||
# 台账数据库与运行数据目录
|
||
data-dir: data
|
||
|
||
server:
|
||
listen: 0.0.0.0:8899
|
||
# 管理界面自身的登录凭据(仅用于保护这个界面,与 LDAP 用户无关)
|
||
admin-user: admin
|
||
# 明文密码只在首次启动时用于生成哈希;建议改用 hash-password 生成下面的哈希
|
||
admin-password: change-me
|
||
# 用 `./idsync -hash-password '你的密码'` 生成,留空则使用上面的明文密码
|
||
admin-password-hash: ""
|
||
# 会话签名密钥,用 `./idsync -gen-secret` 生成。
|
||
# 留空会自动生成临时密钥,但重启后需要重新登录。
|
||
session-secret: ""
|
||
# 经 HTTPS 反代访问时设为 true
|
||
secure-cookie: false
|
||
|
||
feishu:
|
||
app-id: "cli_xxxxxxxxxxxx"
|
||
app-secret: "xxxxxxxxxxxxxxxxxxxxxxxx"
|
||
# 留空使用飞书开放平台;Lark 国际版填 https://open.larksuite.com
|
||
base-url: ""
|
||
# 留空表示同步全部部门;填部门 ID 则只同步这些部门,
|
||
# 前缀 ^ 表示排除该部门及其子部门(例如 ["^odxxxx"])
|
||
dept-list: []
|
||
# 调用飞书的速率上限(次/秒),避免触发频控
|
||
qps: 5
|
||
timeout-sec: 30
|
||
|
||
ldap:
|
||
# 生产环境务必使用 ldaps:// 或开启 start-tls:
|
||
# Authelia 重置密码时会把新密码经此连接发送。
|
||
url: ldaps://ldap.example.com:636
|
||
base-dn: "dc=example,dc=com"
|
||
admin-dn: "cn=admin,dc=example,dc=com"
|
||
admin-pass: "change-me"
|
||
# 在职用户所在 OU。必须落在 Authelia 的 base_dn 之内。
|
||
user-ou: "ou=people"
|
||
# 离职用户迁往的 OU。必须落在 Authelia 的 base_dn 之外,
|
||
# 这样离职者会自动失去登录能力,无需在 Authelia 侧加过滤条件。
|
||
inactive-ou: "ou=Inactive"
|
||
# 部门树根 OU 的名称(仅名称,不含 ou=)
|
||
group-root-name: "feishuroot"
|
||
timeout-sec: 15
|
||
start-tls: false
|
||
# 仅自签证书的测试环境使用
|
||
insecure-skip-verify: false
|
||
# 新建用户的初始密码。留空则每个用户随机生成,
|
||
# 用户首次登录应走 Authelia 的“忘记密码”自助重置。
|
||
initial-password: ""
|
||
|
||
database:
|
||
source: data/idsync.db
|
||
|
||
sync:
|
||
# 是否启用定时同步
|
||
enable: true
|
||
# 秒级 cron:秒 分 时 日 月 周。默认每天 00:40 执行。
|
||
schedule: "0 40 0 * * *"
|
||
# true 表示定时任务只生成计划不写入。建议先观察几轮再改为 false。
|
||
default-dry-run: true
|
||
# 单次同步允许停用的账号数上限,0 表示不限制
|
||
max-deactivate: 0
|
||
# 单次同步允许停用的账号比例上限(0-1)。
|
||
# 用于防止飞书应用权限范围被误改导致大批账号被判定为离职。
|
||
max-deactivate-percent: 0.2
|