从 7.1.3 版开始,Seafile 可以对接钉钉,并实现以下功能:
扫码登录、扫码绑定
钉钉用户可通过扫码登录 Seafile 系统。
绑定原有账号,对已经在使用 Seafile 的用户,用户可以自行在设置页面,通过扫码,关联钉钉账号。
导入钉钉用户:管理员可以在管理后台从导入钉钉用户(即使此用户之前并未存在在 Seafile 系统中)。
此配置包括了扫码登录,导入用户和消息通知的功能。
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
可参考钉钉官方文档:https://open-dev.dingtalk.com/#/loginMan
创建好后,需要记录应用的 AgentId 和 AppSecret。
如果要集成钉钉认证登录,您必须在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
通过添加可选配置项,您可以实现以下管控方案:
开启钉钉用户注册功能,关闭自动激活功能。这意味着钉钉用户可以通过扫码注册一个Seafile账号,但需要管理员手动激活该账号才可以扫码登录。
关闭钉钉用户注册功能。这以为着禁用钉钉用户扫码注册的功能,需要管理员事先导入指定的钉钉账号,并手动激活这些账号,用户才可以扫码登录。
可参考钉钉官方文档:https://ding-doc.dingtalk.com/doc#/serverapi2/eev437/0d3c89f7
创建好后,在应用信息开发管理中设置好**服务器公网出口IP名单,**记录好应用的 AgentKey 和 AppSecret。
如果要集成钉钉认证登录,您必须在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_settings.py
中添加以下基础配置信息:
ENABLE_DINGTALK = True
# 发送钉钉消息通知相关
DINGTALK_AGENT_ID = 'your-agent-id'
上述配置完成后,重启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