
docker-crypt-server-saml 是一个集成 SAML 认证的 Crypt Server Docker 容器,用于部署支持 SAML 单点登录(SSO)的 Crypt Server 服务。使用前需编辑 settings.py 配置文件,并提供 SAML 身份提供商(IdP)的 metadata.xml 文件。
适用于需要部署 Crypt Server 并要求通过 SAML 协议实现身份认证的企业或组织环境,尤其适合已采用 OneLogin、Okta 等 SAML IdP 的场景,满足统一身份管理需求。
4.1.1 settings.py 必要修改
需修改以下关键配置项(值需根据实际 SAML 环境调整):
SAML_ATTRIBUTE_MAPPING
SAML 属性与应用属性的映射关系,值来源于 LDAP、Active Directory 等用户存储。
SAML_CONFIG
SAML 服务提供商(SP)配置,包含:
entityid: SP 实体 ID,示例:https://crypt.example.com/saml2/metadata/assertion_consumer_service: 断言消费者服务 URL,示例:https://crypt.example.com/saml2/acs/single_logout_service: 单点登出服务 URL,示例:https://crypt.example.com/saml2/ls/ 和 https://crypt.example.com/saml2/postrequired_attributes: 必需属性列表,需与 SAML_ATTRIBUTE_MAPPING 中的值匹配idp: IdP 配置,包含:
root url: IdP 元数据 URL,示例:https://app.onelogin.com/saml/metadata/1234567890single_sign_on_service: SSO 服务 URL,示例:https://apps.onelogin.com/trust/saml2/http-post/sso/1234567890single_logout_service: SLO 服务 URL,示例:https://apps.onelogin.com/trust/saml2/http-redirect/slo/1234567890以下命令为基础模板(不完整,需补充实际路径),展示配置文件挂载方式:
bashdocker run -d --name="crypt" \ -p 80:8000 \ -v /本地路径/metadata.xml:/home/docker/crypt/fvserver/metadata.xml \ -v /本地路径/settings.py:/home/docker/crypt/fvserver/settings.py \ --restart="always" \ macadmins/crypt-server-saml:2.2.0
参数说明:
-p 80:8000: 端口映射(主机端口:容器端口)-v: 挂载本地 metadata.xml 和 settings.py 至容器内对应路径--restart="always": 容器退出后自动重启4.3.1 OneLogin 配置
登录 OneLogin 管理后台,进入 Apps > Add Apps
搜索并选择 SAML Test Connector (IdP)
填写应用名称(可选上传图标),点击 Save
Configuration 标签页配置:
Recipient: https://crypt.example.com/saml2/acs/ACS (Consumer) URL Validator: .*(点号+星号)ACS (Consumer) URL: https://crypt.example.com/saml2/acs/Parameters 标签页添加属性映射:
点击 Add parameter,配置以下字段(需勾选 Include in SAML assertion):
| FIELD_NAME | FIELD_VALUE |
|---|---|
| urn:mace:dir:attribute-def:cn | First Name |
| urn:mace:dir:attribute-def:sn | Last Name |
| urn:mace:dir:attribute-def:mail | |
| urn:mace:dir:attribute-def:uid | Email name part |
SSO 标签页:
metadata.xml 文件(用于容器挂载)settings.py 的 idp 部分点击 Save 完成配置
4.3.2 Okta 配置
Okta 实现与 pysaml2/djangosaml2 存在兼容性差异,需按以下步骤配置:
登录 Okta 管理后台,创建新应用:
General Settings:填写应用名称(可选上传图标),配置可见性
Configure SAML:
General:
https://crypt.example.com/saml2/acs/https://crypt.example.com/saml2/metadata/Okta usernameAttribute Statements:
| Name | Format | Value |
|---|---|---|
| urn:mace:dir:attribute-def:cn | Basic | ${user.firstName} |
| urn:mace:dir:attribute-def:sn | Basic | ${user.lastName} |
| urn:mace:dir:attribute-def:mail | Basic | ${user.email} |
| urn:mace:dir:attribute-def:uid | Basic | ${user.login} |
Group Attribute Statements:暂不支持,留空
Feedback:
获取配置信息:
metadata.xml:从应用 Sign On > Settings > SAML 2.0 > Identity Provider metadata 下载settings.py 的 idp 部分settings.py 配置细节可参考:https://github.com/knaperek/djangosaml2
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务