Port of passport-azure-ad to Rust
bash
cargo add passport_azure_ad
```rust // msaltest.rs use dotenvy::dotenv; use passportazuread::{ bearerstrategy::BearerStrategy, error::PassportError, types::{LogLevel, Payload}, util, }; use std::env;
async fn testmsalbearer() { dotenv().ok(); let token = env::var("BEARERTOKEN") .expect("'BEARERTOKEN' is not defined") .tostring(); let clientid = env::var("AZUREADCLIENTID") .expect("'AZUREADCLIENTID' is not defined") .tostring(); let tenantid = env::var("AZUREADTENANTID") .expect("'AZUREADTENANTID' is not defined") .to_string();
let bearer = BearerStrategy::build(
Some(false), // allow_multi_audiences
None, // audience
Some(client_id), // client_id
None, // clock_stew
Some(util::open_id_config_url(tenant_id.clone())), // identity_metadata
Some(false), // ignore_expiration
Some(false), // is_b2c
Some(vec![util::issuer_url(tenant_id)]), // issuer
Some(LogLevel::Trace), // log_level
None, // policy_name
Some(vec![String::from("api-access")]), // scope
Some(true), // validate_issuer
)
.unwrap();
let validated: Result<Payload, PassportError> = bearer.authenticate(token).await;
assert!(validated.is_ok());
} ```
```bash
source
set -o allexport && source .env && set +o allexport && cargo test ```