#ids #client #dataspace #client-connect #daps

ids-daps-client

用于连接 IDS DAPS 的客户端

1 个不稳定版本

0.1.0 2024 年 8 月 20 日

#11 in #client-connect

自定义许可

26KB
429 代码行

ids-daps-client

这是一个用于与最新 IDS 参考架构模型(RAM 4)中的动态属性提供程序(DAPS)交互的 Rust 客户端库动态属性提供程序(DAPS)

有关更多信息和使用方法,请参阅库文档。

参考


lib.rs:

ids-daps

ids-daps 库为国际数据空间协会(IDSA)的参考架构模型 4(RAM 4)的动态属性令牌服务(DAPS)提供了 Rust 客户端。

用法

use ids_daps_client::{DapsConfigBuilder, DapsClient, ReqwestDapsClient};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
#
#
#
    // Create a DAPS client configuration
    let config = DapsConfigBuilder::default()
        .certs_url(certs_url)
        .token_url(token_url)
        .private_key(std::path::Path::new("./testdata/connector-certificate.p12"))
        .private_key_password(Some(std::borrow::Cow::from("Password1")))
        .scope(std::borrow::Cow::from("idsc:IDS_CONNECTORS_ALL"))
        .certs_cache_ttl(1)
        .build()
        .expect("Failed to build DAPS-Config");

    // Create DAPS client
    let client: ReqwestDapsClient<'_> = DapsClient::new(&config);

    // Request a DAT token
    let dat = client.request_dat().await?;
    println!("DAT Token: {:?}", dat);

    // Validate the DAT token
    if client.validate_dat(&dat).await.is_ok() {
        println!("Validation successful");
    }

    Ok(())
}

依赖关系

~8–20MB
~328K SLoC