#azure-sdk #azure-rest #azure #sdk #cloud #iot #rest

azure_identity

Microsoft Azure REST API的Rust封装 - Azure身份辅助库

19次重大版本发布

0.20.0 2024年4月24日
0.19.0 2024年1月5日
0.18.1 2023年12月11日
0.17.0 2023年11月3日
0.1.1 2022年1月25日

#58 in 网络编程

Download history 15455/week @ 2024-05-03 14520/week @ 2024-05-10 17647/week @ 2024-05-17 18492/week @ 2024-05-24 17957/week @ 2024-05-31 14742/week @ 2024-06-07 16409/week @ 2024-06-14 22941/week @ 2024-06-21 15778/week @ 2024-06-28 16687/week @ 2024-07-05 17538/week @ 2024-07-12 19716/week @ 2024-07-19 17843/week @ 2024-07-26 17202/week @ 2024-08-02 20621/week @ 2024-08-09 18590/week @ 2024-08-16

77,656 每月下载量
用于 23 个库 (17 直接)

MIT 协议

360KB
8K SLoC

azure_identity

Azure Identity库,用于非官方的Microsoft Azure SDK for Rust。此库是集合库的一部分:更多详细信息请参阅 https://github.com/azure/azure-sdk-for-rust

此库提供对azure_core::auth::TokenCredential trait的几个实现。建议从azure_identity::create_credential()?开始,它将默认创建一个DefaultAzureCredential实例。如果您想使用特定的凭据类型,可以将AZURE_CREDENTIAL_KIND环境变量设置为azure_credential_kinds中的值,例如azureclivirtualmachine

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
   let subscription_id =
       std::env::var("AZURE_SUBSCRIPTION_ID").expect("AZURE_SUBSCRIPTION_ID required");

   let credential = azure_identity::create_credential()?;

   // Let's enumerate the Azure storage accounts in the subscription using the REST API directly.
   // This is just an example. It is easier to use the Azure SDK for Rust crates.
   let url = url::Url::parse(&format!("https://management.azure.com/subscriptions/{subscription_id}/providers/Microsoft.Storage/storageAccounts?api-version=2019-06-01"))?;

   let access_token = credential
       .get_token(&["https://management.azure.com/.default"])
       .await?;

   let response = reqwest::Client::new()
       .get(url)
       .header(
           "Authorization",
           format!("Bearer {}", access_token.token.secret()),
       )
       .send()
       .await?
       .text()
       .await?;

   println!("{response}");
   Ok(())
}

支持的认证流程包括

许可证: MIT

依赖项

~9–24MB
~379K SLoC