集成 SAML 单点登录

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=True
LOGIN_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登录测试。