企业微信集成

功能说明

从 7.0.4 版开始,Seafile 可以对接企业微信,并实现以下功能:

配置集成

自建第三方应用

登录您的企业微信管理后台,自建用于对接 Seafile 服务的第三方应用。并在该应用下设置企业微信授权登录用的“授权回调域”,域名为您的 Seafile 服务器域名。

配置该应用的“可见范围”,这决定着哪些企业微信的用户可以通过管理员直接导入到Seafile中。

最后,您还需要收集上述应用的 AgentId、Secret 以及您的企业ID。

配置 Seahub

基础配置

如果要集成企业微信认证登录,您必须在seahub_settings.py中添加以下基础配置信息:

ENABLE_WORK_WEIXIN = True                 # 开启企业微信认证登录功能
WORK_WEIXIN_CORP_ID = 'your-corpid'       # 您的企业ID
WORK_WEIXIN_AGENT_SECRET = 'your-secret'  # 您的应用secret
WORK_WEIXIN_AGENT_ID = 'your-agentid'     # 您的应用agentid

完成上述配置后,即可实现企业微信中的用户扫码注册并自动激活Seafile中的账号。这意味着无需经过 Seafile 系统管理员的允许,该用户就可以拥有注册并登录Seafile的权限。

如果您需要 Seafile 管理员严格掌控系统的注册权限,你可能还需要更多的高级配置。

高级配置

以下配置为可选项,您可按需在seahub_settings.py中配置修改。

WORK_WEIXIN_OAUTH_CREATE_UNKNOWN_USER = False 
### 默认为True,新用户扫码登录后自动新建 seafile 用户。设置为False后,禁止新用户扫码注册,原有账号依旧可以扫码登录,并且管理员依旧可以通过导入企业微信用户的方式添加新用户。

WORK_WEIXIN_OAUTH_ACTIVATE_USER_AFTER_CREATION = False 
### 默认为True,新用户扫码注册后,新建的 seafile 用户会自动激活。设置为False后,新用户扫码注册后需要管理员手动激活。

WORK_WEIXIN_USER_INFO_AUTO_UPDATE = True 
### 默认为True,每次扫码后从企业微信同步用户信息;建议配置为True。

通过添加高级配置项,您可以实现以下管控方案:

  1. 开启企业微信用户注册功能,关闭自动激活功能。这意味着企业微信用户可以通过扫码注册一个Seafile账号,但需要管理员手动激活该账号才可以扫码登录。
  2. 关闭企业微信用户注册功能。这以为着禁用企业微信用户扫码注册的功能,需要管理员事先导入指定的企业微信账号,并手动激活这些账号,用户才可以扫码登录。

重启 Seahub

上述配置完成后,重启seahub服务以生效:

./seahub.sh stop
./seahub.sh start

重启成功后您可以通过点击登录页面上的“单点登录”来使用企业微信扫码登录。

导入企业微信用户

上述过程执行成功后,您或许还需要事先导入并激活企业微信中的用户(如果您设置了WORK_WEIXIN_OAUTH_CREATE_UNKNOWN_USER = False)。

使用Seafile管理员账号,登录到“系统管理-企业微信集成”页面。勾选您需要导入的用户后,点击“导入用户”即可。

注意:导入的用户均为“未激活”状态,需要管理员手动激活该用户。

导入企业微信部门(专业版)

如果您使用的是 Seafile 专业版,您还可以在“企业微信集成”页面中将企业微信部门导入为 Seafile 的组织架构。

登录到“系统管理-企业微信集成”页面,鼠标移动到部门列表上,鼠标所在的部门名称右侧会出现“更多操作”按钮,点击后即可出现“导入部门”

导入企业微信部门成功后,您可以在“组织架构”页面确认并且对这些部门进行日常管理:

关联企业微信账号

如果您在 Seafile 系统中已经创建了一个普通账号,您可以选择绑定一个企业微信账号,实现企业微信认证登录。

设置流程:登录个人seafile账号 -> 个人设置页面 -> 社交账号登录 -> 企业微信 -> 连接

点击“连接”,使用企业微信扫码即可完成绑定。

企业微信工作台登录 Seafile

此功能需预先配置好企业微信扫码登录。

在企业微信后台,配置好工作台应用主页:https\://your-seafile-domain/sso/。例如:

再配置一下开发者接口,网页授权及JS-SDK,可信域名。例如:

注意事项

集成企业微信认证登录的功能依赖于企业微信对外发布的API,为了防止企业微信调整相关的API,我们把这些API设置成可配置的。一般情况下您无需关心这些,但如果企业微信 API URL 有变动,可通过在seahub_settings.py中添加以下配置修改:

WORK_WEIXIN_ACCESS_TOKEN_URL = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken'
WORK_WEIXIN_AUTHORIZATION_URL = 'https://open.work.weixin.qq.com/wwopen/sso/qrConnect'
WORK_WEIXIN_GET_USER_INFO_URL = 'https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo'
WORK_WEIXIN_GET_USER_PROFILE_URL = 'https://qyapi.weixin.qq.com/cgi-bin/user/get'

WORK_WEIXIN_NOTIFICATIONS_URL = 'https://qyapi.weixin.qq.com/cgi-bin/message/send'

WORK_WEIXIN_ACCESS_TOKEN_URL = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken'
WORK_WEIXIN_DEPARTMENTS_URL = 'https://qyapi.weixin.qq.com/cgi-bin/department/list'
WORK_WEIXIN_DEPARTMENTS_MEMBERS_URL = 'https://qyapi.weixin.qq.com/cgi-bin/user/list'

WORK_WEIXIN_ACCESS_TOKEN_URL = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken'
WORK_WEIXIN_DEPARTMENTS_URL = 'https://qyapi.weixin.qq.com/cgi-bin/department/list'
WORK_WEIXIN_DEPARTMENTS_MEMBERS_URL = 'https://qyapi.weixin.qq.com/cgi-bin/user/list'

注意:上述 URL 为配置示例,您需要查询企业微信API文档获取最新的API URL。

Last modified by Daniel Pan, 2020-10-21

功能说明
配置集成
自建第三方应用
配置 Seahub
重启 Seahub
导入企业微信用户
导入企业微信部门(专业版)
关联企业微信账号
企业微信工作台登录 Seafile
注意事项