
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
https://travis-ci.org/Digital-Identity-Labs/ishigaki.svg?branch=master](https://travis-ci.org/Digital-Identity-Labs/ishigaki) https://img.shields.io/docker/stars/digitalidentity/ishigaki.svg](https://hub.docker.com/r/digitalidentity/ishigaki/) https://images.microbadger.com/badges/image/digitalidentity/ishigaki.svg](https://microbadger.com/images/digitalidentity/ishigaki "Get your own image badge on microbadger.com")
Shibboleth Identity Provider 是一款成熟的、基于SAML的单点登录(SSO)Web应用,广泛部署于学术机构,全球有数百万教职工和学生使用。
Ishigaki是一个极简的、基于Debian的Shibboleth IdP Docker镜像,由Digital Identity Ltd.维护。它旨在作为其他镜像的坚实基础,也可通过挂载配置目录直接使用。
最新版本的Ishigaki基于Shibboleth IdP v4.1.0,支持插件安装和模块管理。
该镜像不是即用型的独立IdP服务——它需要配置后与其他服务(如TLS、数据库、LDAP等)配合使用。特别适合与Docker Compose、Swarm、Nomad或Kubernetes配合使用。Ishigaki力求成为优质Docker镜像,包括精心设计的镜像层、正确的信号处理、非root进程运行、默认日志输出到STDOUT以及健康检查。
适用于需要部署Shibboleth IdP的场景,尤其适合:
镜像可从Dockerhub和Github获取:
提供三个版本:
bash# 从DockerHub获取最新默认版本 docker pull docker.xuanyuan.run/digitalidentity/ishigaki:latest # 从Github获取最新plus版本 docker pull ***-ghcr.xuanyuan.run/digital-identity-labs/ishigaki:latest-plus # 从Github获取特定base版本 docker pull ***-ghcr.xuanyuan.run/digital-identity-labs/ishigaki:2.0.0-base
前台运行未配置的默认IDP,并暴露HTTP端口:
bashdocker run -it -p 8080:8080 docker.xuanyuan.run/digitalidentity/ishigaki
从运行中的容器复制当前配置:
bashcontainerid=$(docker ps | grep ishigaki | awk '{print $1}') docker cp $containerid:/opt ./optfs docker stop $containerid
Ishigaki的主要配置位于以下/opt目录中:
admin - 包含内部工具jetty - 全局Jetty配置jetty-shib - 运行Shibboleth的额外Jetty配置文件misc - 其他文件shibboleth-idp - Shibboleth IDP配置根据需求调整这些文件,更多信息参见Shibboleth IdP文档。通常无需修改admin、jetty和misc目录;仅在直接为IdP添加TLS或后端通道端口(而非使用代理)时才需修改jetty-shib目录。
方法一:构建包含配置的镜像
dockerfileFROM ***-ghcr.xuanyuan.run/digital-identity-labs/ishigaki:latest-base # (生产环境中不要使用latest标签) LABEL description="基于Ishigaki的示例IdP镜像" \ version="0.0.1" \ maintainer="example@example.com" ARG PLUGINS="https://shibboleth.net/downloads/identity-provider/plugins/oidc-common/1.0.0/oidc-common-dist-1.0.0.tar.gz \ https://shibboleth.net/downloads/identity-provider/plugins/oidc-op/3.0.0/idp-plugin-oidc-op-distribution-3.0.0.tar.gz" ARG MODULES="idp.oidc.OP" # prepare_apps.sh脚本可能使用这些环境变量 ENV IDP_HOSTNAME=idp.example.com \ IDP_SCOPE=example.com \ IDP_ID=https://idp.example.com/idp/shibboleth RUN for plugin in $PLUGINS; do $IDP_HOME/bin/plugin.sh -i $plugin ; done && \ $IDP_HOME/bin/module.sh -i $MODULES ; $IDP_HOME/bin/module.sh -e $MODULES # 复制配置文件到镜像 COPY optfs /opt
方法二:挂载目录运行
bashdocker run -v /home/bjensen/myshib/optfs/shibboleth-idp:/opt/shibboleth-idp docker.xuanyuan.run/digitalidentity/ishigaki
单独运行Ishigaki容器仅适用于基础开发或测试,与其他Docker容器配合使用更有价值。例如,以下docker-compose.yml可提供包含TLS和LDAP的基本IdP服务:
dockerversion: '3' services: frontend: image: docker.xuanyuan.run/traefik:latest command: --web --docker --docker.domain=docker.localhost --logLevel=DEBUG ports: - "443:443" - "8080:8080" - "8433:8443" volumes: - /var/run/docker.sock:/var/run/docker.sock - ./frontend/traefik.toml:/traefik.toml - ./frontend/certs:/certs ldap: image: docker.xuanyuan.run/digitalidentity/eduldap:latest labels: - "traefik.enable=false" idp: image: docker.xuanyuan.run/digitalidentity/ishigaki:latest volumes: - ./idp/shibboleth-idp:/opt/shibboleth-idp labels: - "traefik.backend=idp" - "traefik.frontend.passHostHeader=true" - "traefik.frontend.rule=Host:idp.localhost.demo.university" - "traefik.frontend.entryPoints=https" - "traefik.port=8080" - "traefik.protocol=http"
(注:此配置需配合您自己的数据、Traefik配置、LDAP数据等才能正常工作)
Ishigaki仓库使用https://github.com/Digital-Identity-Labs/ishigaki-spec%E7%9A%84Inspec%E6%B5%8B%E8%AF%95%E3%80%82%E6%82%A8%E5%8F%AF%E4%BB%A5%E5%9C%A8%E8%87%AA%E5%B7%B1%E7%9A%84InSpec%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E4%B8%AD%E6%B7%BB%E5%8A%A0%E6%AD%A4%E4%BE%9D%E8%B5%96%E6%9D%A5%E6%B5%8B%E8%AF%95%E8%87%AA%E5%AE%9A%E4%B9%89Docker%E9%95%9C%E5%83%8F%EF%BC%8C%E5%85%B7%E4%BD%93%E6%96%B9%E6%B3%95%E5%8F%AF%E5%8F%82%E8%80%83Ishigaki%E4%BB%93%E5%BA%93%E4%BB%A3%E7%A0%81%E3%80%82
使用docker build时,可通过--build-arg THE_ARG="new setting"修改以下默认配置:
JETTY_URL - 自定义Jetty版本的下载URLJETTY_CHECKSUM - Jetty归档文件的SHA1校验和IDP_URL - Shibboleth IdP归档文件(tar.gz)的下载URLIDP_CHECKSUM - Shibboleth IdP归档文件的SHA256校验和EDWIN_STARR - 设置为"1"时不在基础镜像中构建.war文件DELAY_WAR - 设置为"1"时延迟.war构建至插件管理阶段IDP_HOSTNAME - IdP的DNS主机名IDP_ID - IdP的实体URIIDP_SCOPE - IdP的作用域域名IDP_KEYSIZE - IdP的密钥大小SPASS - 默认密封密码(构建时建议使用占位符)KPASS - 默认密钥库密码(构建时建议使用占位符)CREDS_MODE - 凭证文件的Posix权限CREDS_GROUP - 可访问凭证文件的用户组IDP_PROPERTIES - 合并到默认IdP属性的Java属性字符串LDAP_PROPERTIES - 合并到默认LDAP属性的Java属性字符串MODULES - 从Shibboleth主包启用的模块ID列表(逗号分隔)PLUGINS - 插件文件路径或URL列表(空格分隔)PLUGIN_MODULES - 插件安装后启用的模块ID列表(逗号分隔)WRITE_MD - 设置为"0"时限制元数据目录的写权限与大多数IdP镜像不同,Ishigaki假设运行在反向代理(如Apache HTTPD或Traefik)之后,默认配置接受并信任一些来自代理的HTTP头信息。
如果直接运行Ishigaki(添加TLS、后端通道端口等,不使用代理),请移除这些头信息的配置选项,否则可能带来安全风险。
Ishigaki学术版是由Mimoto Ltd提供的商业支持版本,使用方式与社区版相同,但有以下区别:
如需了解更多信息,请联系Mimoto。
Ishigaki指日本城堡令人印象深刻的干石基础墙。(Ishigaki也是冲绳县石垣岛的名称)
可通过创建https://github.com/Digital-Identity-Labs/ishigaki/issues%E8%AF%B7%E6%B1%82%E6%96%B0%E5%8A%9F%E8%83%BD%EF%BC%8C%E6%88%96%E6%8F%90%E4%BA%A4https://github.com/Digital-Identity-Labs/ishigaki/pulls%E8%B4%A1%E7%8C%AE%E4%BB%A3%E7%A0%81%E3%80%82
Ishigaki仓库包含可在您自己项目中使用的测试。我们特别感谢包含测试的贡献。
如果您与Mimoto有支持合同,请联系Mimoto获取帮助,而非使用Github。
Copyright (c) 2017,2021 Digital Identity Ltd, UK
基于MIT许可证授权
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务