跳转到主要内容

以Python方式构建SCIM请求并解析SCIM响应

项目描述

scim2-client

基于 scim2-modelshttpx 开发的 SCIM 客户端 Python 库,Pythonic 地构建请求并解析响应,遵循 RFC7643RFC7644 规范。

旨在用于 SCIM 客户端应用程序,或在 SCIM 服务器应用程序的单元测试中。

那么 SCIM 是什么呢?

SCIM 代表跨域身份管理系统,它是一种配置协议。配置是指在多种服务之间管理一组资源的行为,通常涉及用户和组。SCIM 经常用于身份提供者与应用程序之间,以完成 OAuth2 和 OpenID Connect 等标准。它允许用户和组在应用程序之间同步创建、修改和删除。

安装

pip install scim2-client

用法

请参阅 教程参考 获取更多详细信息。

以下是使用示例

import datetime
from httpx import Client
from scim2_models import User, EnterpriseUser, Group, Error
from scim2_client import SCIMClient

client = Client(base_url=f"https://auth.example/scim/v2", headers={"Authorization": "Bearer foobar"})
scim = SCIMClient(client, resource_types=(User[EnterpriseUser], Group))

# Query resources
user = scim.query(User[EnterpriseUser], "2819c223-7f76-453a-919d-413861904646")
assert user.user_name == "bjensen@example.com"
assert user.meta.last_updated == datetime.datetime(
    2024, 4, 13, 12, 0, 0, tzinfo=datetime.timezone.utc
)

# Update resources
user.display_name = "Babs Jensen"
user = scim.replace(user)
assert user.display_name == "Babs Jensen"
assert user.meta.last_updated == datetime.datetime(
    2024, 4, 13, 12, 0, 30, tzinfo=datetime.timezone.utc
)

# Create resources
payload = User(user_name="bjensen@example.com")
response = scim.create(user)
assert isinstance(response, Error)
assert response.detail == "One or more of the attribute values are already in use or are reserved."

scim2-client 是由 Yaal Coop 开发的一组 SCIM 工具集合的一部分,包括 scim2-modelsscim2-testerscim2-cli

项目详情


下载文件

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

源分布

scim2_client-0.2.0.tar.gz (8.7 kB 查看哈希值)

上传时间

构建分布

scim2_client-0.2.0-py3-none-any.whl (8.2 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面