SAML SSO (10.0+ 版本)
此文档适用于 Seafile 10.0 及之后的版本。
在本文档中,我们使用 Azure SAML 来展示将 Seafile 与 SAML 连接的步骤。其他 SAML 提供商应该类似。
1. 安装 xmlsec1
$ apt update
$ apt install xmlsec1
2. 准备证书文件
创建证书目录
$ mkdir -p /opt/seafile/seahub-data/certs
您可以通过以下命令生成它们:
$ cd /opt/seafile/seahub-data/certs
$ openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout sp.key -out sp.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
二进制文件的位置:
$ which xmlsec1
注意
:如果证书
没有
放在
/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登录测试。