SAML SSO (10.0+ 版本)
此文档适用于 Seafile 10.0 及之后的版本。
在本文档中,我们使用 Azure SAML 来展示将 Seafile 与 SAML 连接的步骤。其他 SAML 提供商应该类似。
1. 安装 xmlsec1
$aptupdate
$aptinstallxmlsec1
2. 准备证书文件
创建证书目录
$mkdir-p/opt/seafile/seahub-data/certs
您可以通过以下命令生成它们:
$cd/opt/seafile/seahub-data/certs
$opensslreq-x509-nodes-days3650-newkeyrsa:2048-keyoutsp.key-outsp.crt
3. 配置 Seafile
将以下配置添加到 seahub_settings.py 中,然后重启 Seafile:
ENABLE_ADFS_LOGIN=TrueLOGIN_REDIRECT_URL='/saml2/complete/'SAML_REMOTE_METADATA_URL='https://login.microsoftonline.com/xxx/federationmetadata/2007-06/federationmetadata.xml?appid=xxx'SAML_ATTRIBUTE_MAPPING={
'name':('display_name',),
'mail':('contact_email',),}注意:如果xmlsec1二进制文件的位置不是/usr/bin/xmlsec1,需要在seahub_settings.py中添加如下配置:
SAML_XMLSEC_BINARY_PATH='/path/to/xmlsec1'查看 xmlsec1 二进制文件的位置:
$whichxmlsec1
注意:如果证书没有放在/opt/seafile/seahub-data/certs目录下,需要在seahub_settings.py中添加如下配置:
SAML_CERTS_DIR='/path/to/certs'4. 配置 Azure SAML
为 SAML 应用设置 SSO:

5. 上传 Azure AD 证书
下载base64格式的签名证书,重命名为idp.crt,然后放到certs目录下。

6. 登录Seafile主页,点击单点登录,使用分配给Azure SAML的用户进行SAML登录测试。