参考资料

  1. Reader 是一款开源的 RSS 阅读器和稍后阅读工具
  2. Rocket.Chat 是一款开源的团队聊天平台
  3. Ubuntu 是基于 Debian 的开源 Linux 发行版
  4. NAS中为何使用Docker?
  5. Rust 是一种系统编程语言,专注于安全、并发和性能
  6. Docker Desktop的安装步骤
  7. PyPy 是一个 Python 解释器的替代实现,使用 RPython(受限 Python)编写
  8. Arch Linux 是一个轻量级、灵活的 Linux 发行版

Satosa 是一个高度可配置的 Python 实现的身份代理

Satosa 详细简介
Satosa 是一个高度可配置的 Python 实现的身份代理(Proxy),用于 SAML、OIDC 和其他身份协议之间的协议转换和集成。

特点  

  • 支持多协议转换(如 SAML ↔ OIDC)

  • 模块化设计,易于扩展

  • 支持插件机制(前端、后端、中间件)

  • 提供 REST API 和 Admin UI

最新更新内容及时间  

  • 最新版本:v8.0.0(2023年发布)

  • 更新内容:

    • 支持 Python 3.10+

    • 改进 OIDC 后端功能

    • 修复安全漏洞

镜像下载地址  

  • Docker Hub: https://hub.docker.com/r/identitypython/satosa

官网地址  

  • 官网: https://satosa.github.io/

文档地址  

  • 官方文档: https://satosa.readthedocs.io/

Docker 安装示例  

docker pull identitypython/satosa:latest
docker run -d -p 8080:8080 identitypython/satosa

YAML 设置教程  

  1. 创建 proxy_conf.yaml 文件:

BASE: "https://satosa.example.com"
SERVER_NAME: "satosa.example.com"
STATE_ENCRYPTION_KEY: "your_encryption_key"
  1. 配置 SAML/OIDC 后端:

backend_config:
  saml2:
    config:
      sp_config:
        metadata:
          local: ["/path/to/metadata.xml"]

常用错误问题  

  1. "Invalid metadata"

    • 检查 SAML/OIDC 元数据文件路径是否正确。

  2. "State encryption failed"

    • 确保 STATE_ENCRYPTION_KEY 配置正确且足够长。

  3. "Missing required attribute"

    • 检查身份提供者(IdP)返回的属性是否匹配配置。

  4. Docker 容器启动失败

    • 检查端口是否冲突(默认 8080)。