#身份管理 #用户 #用户组 #用户管理 #JSON #SCIM #协议

scim_v2

这是一个提供与系统跨域身份管理(SCIM)版本2.0协议(rfc7642, rfc7643, rfc7644)交互的实用工具的crate。

2 个版本

0.2.3 2024年3月26日
0.2.2 2024年3月21日
0.2.1 2024年3月21日

#665 in 解析器实现

Download history 1/week @ 2024-05-24 1/week @ 2024-05-31

97 个月下载量

MIT 许可证

115KB
1.5K SLoC

SCIM v2

`scim_v2` 是一个Rust crate,提供与系统跨域身份管理(SCIM)版本2.0协议交互的实用工具。

描述

此crate提供以下功能:

  • 各种SCIM资源(如`User`、`Group`、`ResourceType`、`ServiceProviderConfig`和`EnterpriseUser`)的模型。
  • 验证这些资源的函数。
  • 将这些资源序列化为JSON的函数。
  • 从JSON反序列化这些资源的函数。

安装

要在项目中使用`scim_v2`,请将以下内容添加到您的`Cargo.toml`:

[dependencies]
scim_v2 = "0.2.3"

然后运行`cargo build`以下载和编译`scim_v2` crate及其所有依赖项。

用法

以下是一些如何使用此crate的示例

验证用户

use scim_v2::models::user::User;

let user = User {
user_name: "[email protected]".to_string(),
// other fields...
..Default::default()
};

match user.validate() {
Ok(_) => println!("User is valid."),
Err(e) => println!("User is invalid: {}", e),
}

将用户序列化为JSON

use scim_v2::models::user::User;

let user = User {
schemas: vec!["urn:ietf:params:scim:schemas:core:2.0:User".to_string()],
user_name: "[email protected]".to_string(),
// Initialize other fields as necessary...
..Default::default ()
};

match user.serialize() {
Ok(json) => println ! ("Serialized User: {}", json),
Err(e) => println !("Serialization error: {}", e),
}

从JSON反序列化用户

use scim_v2::models::user::User;

let user_json = r#"{"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], "userName": "[email protected]"}"#;
match User::try_from(user_json) {
Ok(user) => println!("Successfully converted JSON to User: {:?}", user),
Err(e) => println!("Error converting from JSON to User: {}", e),
}

如果您愿意,也可以使用内置的反序列化函数。

use scim_v2::models::user::User;

let user_json = r#"{"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], "userName": "[email protected]"}"#;
match User::deserialize(user_json) {
Ok(user) => println ! ("Deserialized User: {:?}", user),
Err(e) => println !("Deserialization error: {}", e),
}

有关更多示例和使用详细信息,请参阅每个函数和结构的文档。

贡献

欢迎贡献!请随意提交拉取请求。

许可证

MIT

依赖项

~0.7–1.6MB
~35K SLoC