跳转到主要内容

轻量级SCIM2服务器原型

项目描述

scim2-server

这是一个使用 scim2-models 的示例 WSGI-SCIM 服务器。它利用了 werkzeugscim2-filter-parser,并将所有资源保存在内存中,一旦进程退出,它们就会丢失。

功能

  • 发现端点(《/v2/ServiceProviderConfig》,“/v2/ResourceTypes”,“/v2/Schemas”)
  • 创建/读取/更新/删除资源(《POST》,“GET”,“PUT”,“DELETE”)
  • 搜索 & 过滤
  • 支持 ETags
  • 唯一约束
  • HTTP PATCH(添加/删除/替换)
  • 排序

目前缺少的唯一可选功能是支持批量操作(《RFC 7644,第 3.7 节》)。

用法

$ scim2-server [-h] [--schema SCHEMA] [--resource-type RESOURCE_TYPE] [--bearer-token BEARER_TOKEN] [--hostname HOSTNAME] [--port PORT] [--reverse-proxy] [--dump-resources DUMP_RESOURCES]
  • -h/--help:显示帮助信息
  • --reverse-proxy:允许在反向代理后面使用提供者(需要 URL 重新编写)。
  • --schema:从指定的 JSON 文件注册模式。如果未提供,则从 RFC 7643 加载默认模式。
  • --resource-type:从指定的 JSON 文件注册资源类型。如果未提供,则从 RFC 7643 加载默认资源类型。
  • --bearer-token:注册一个可以用于访问服务的令牌。如果没有提供令牌,则允许匿名访问而不进行身份验证。
  • --hostname:要监听的域名。默认为 127.0.0.1
  • --port:要监听的端口。默认为 8080
  • --dump-resources:在提供者正常退出时转储包含所有资源的 JSON 文档。

注意

如果您想实现 SCIM 提供者,则可以使用此提供者作为起点。如果您想将其用于生产,您可能需要更改以下内容

  • 使用适当的 WSGI 服务器而不是 Werkzeug 提供的服务器
  • 实现自己的后端,作为 scim2_server.backend.Backend 的子类
  • 使用 OAuth 实现适当的授权,而不是公共访问或静态令牌
  • 如果适用,支持 /Me 端点
  • 添加使用静态 URL 前缀的支持或改进在反向代理后面的使用支持

当前状态的提供者已在实时 Microsoft Entra 系统以及实时 Okta 系统上进行测试并成功。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

scim2_server-0.1.1.tar.gz (27.3 kB 查看哈希

上传于 源代码

构建版本

scim2_server-0.1.1-py3-none-any.whl (29.1 kB 查看哈希值)

上传于 Python 3

支持者