钉钉集成

功能说明

从 7.1.3 版开始,Seafile 可以对接钉钉,并实现以下功能:

配置集成

10.0.0 版本配置

此配置包括了扫码登录,导入用户和消息通知的功能。

ENABLE_DINGTALK = True
DINGTALK_APP_KEY = 'your-app-key'
DINGTALK_APP_SECRET = 'your-app-secret'

# 消息通知
DINGTALK_AGENT_ID = 'your-agent-id'

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

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

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

扫码登录 (10.0.0 之前版本配置)

创建扫码登录应用授权

可参考钉钉官方文档:https://open-dev.dingtalk.com/#/loginMan

创建好后,需要记录应用的 AgentId 和 AppSecret。

配置 Seahub

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

ENABLE_DINGTALK = True

# 扫码登录相关
DINGTALK_QR_CONNECT_APP_ID = "your-app-id"
DINGTALK_QR_CONNECT_APP_SECRET = "your-app-secret"

以下配置为可选项,您可按需在seahub_settings.py中配置修改。若您从 9.0 升级到 10.0,以下2个配置项需要改为上面 10.0 的配置。

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

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

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

  1. 开启钉钉用户注册功能,关闭自动激活功能。这意味着钉钉用户可以通过扫码注册一个Seafile账号,但需要管理员手动激活该账号才可以扫码登录。

  2. 关闭钉钉用户注册功能。这以为着禁用钉钉用户扫码注册的功能,需要管理员事先导入指定的钉钉账号,并手动激活这些账号,用户才可以扫码登录。

导入钉钉用户

创建钉钉应用

可参考钉钉官方文档:https://ding-doc.dingtalk.com/doc#/serverapi2/eev437/0d3c89f7

创建好后,在应用信息开发管理中设置好**服务器公网出口IP名单,**记录好应用的 AgentKey 和 AppSecret。

配置 Seahub

基础配置

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

ENABLE_DINGTALK = True

# 导入钉钉用户相关
DINGTALK_DEPARTMENT_APP_KEY = 'your-agent-key'
DINGTALK_DEPARTMENT_APP_SECRET = 'your-app-secret'

发送钉钉消息通知

创建钉钉应用

可参考钉钉官方文档:https://ding-doc.dingtalk.com/doc#/serverapi2/eev437/0d3c89f7

创建好后,在应用信息开发管理中设置好**服务器公网出口IP名单,**记录好应用的 AgentId、AgentKey 和 AppSecret。

配置 Seahub

基础配置

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

ENABLE_DINGTALK = True

# 发送钉钉消息通知相关
DINGTALK_AGENT_ID = 'your-agent-id'

重启 Seahub

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

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

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

对接钉钉相关问题官方文档

https://open.dingtalk.com/document/org-faq/app-faq

使用说明

导入钉钉用户

上述过程执行成功后,您或许还需要事先导入并激活钉钉中的用户。

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

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

导入部门

使用Seafile管理员账号,登录到**“系统管理-钉钉集成”**页面,可以将钉钉部门导入为 Seafile 组织架构。

关联钉钉账号

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

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

点击“连接”,使用钉钉扫码即可完成绑定。

注意事项

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

DINGTALK_QR_CONNECT_AUTHORIZATION_URL = 'https://oapi.dingtalk.com/connect/qrconnect'
DINGTALK_QR_CONNECT_USER_INFO_URL = 'https://oapi.dingtalk.com/sns/getuserinfo_bycode

DINGTALK_DEPARTMENT_GET_ACCESS_TOKEN_URL = 'https://oapi.dingtalk.com/gettoken'
DINGTALK_DEPARTMENT_LIST_DEPARTMENT_URL = 'https://oapi.dingtalk.com/department/list'
DINGTALK_DEPARTMENT_GET_DEPARTMENT_URL = 'https://oapi.dingtalk.com/department/get'
DINGTALK_DEPARTMENT_GET_DEPARTMENT_USER_LIST_URL = 'https://oapi.dingtalk.com/user/listbypage'

DINGTALK_GET_USERID_BY_UNIONID = 'https://oapi.dingtalk.com/user/getUseridByUnionid'
DINGTALK_MESSAGE_SEND_TO_CONVERSATION_URL = 'https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2'

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

Last modified by 马宇航, 2025-03-04

功能说明
配置集成
10.0.0 版本配置
扫码登录 (10.0.0 之前版本配置)
导入钉钉用户
发送钉钉消息通知
重启 Seahub
对接钉钉相关问题官方文档
使用说明
导入钉钉用户
导入部门
关联钉钉账号
注意事项