以Python方式构建SCIM请求并解析SCIM响应
项目描述
scim2-client
基于 scim2-models 和 httpx 开发的 SCIM 客户端 Python 库,Pythonic 地构建请求并解析响应,遵循 RFC7643 和 RFC7644 规范。
旨在用于 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-models、scim2-tester 和 scim2-cli
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定要选择哪个,请了解更多关于 安装包 的信息。
源分布
scim2_client-0.2.0.tar.gz (8.7 kB 查看哈希值)
构建分布
scim2_client-0.2.0-py3-none-any.whl (8.2 kB 查看哈希值)