#jwt #google-cloud #google #jwk #iap

iap-jwt

验证和解码 Google Cloud Identity-Aware Proxy (IAP) JWTs

1 个不稳定版本

0.1.0 2024年8月9日

407身份验证

Download history 85/week @ 2024-08-05 21/week @ 2024-08-12

每月106 次下载

MIT/Apache

31KB
686 代码行

IAP JWT

GitHub MIT/Apache 2.0 Crates.io docs.rs

验证和解码 Google Cloud Identity-Aware Proxy (IAP) JWTs

功能

  • 验证和解码由 Google IAP https://cloud.google.com/iap/docs/signed-headers-howto 发布的 JWT
  • 使用从 Google JWKS 端点检索的公钥验证 JWT 签名
  • 验证标准声明如 expiataudiss
  • 验证 Google 特定声明如 hd (托管域) 和访问级别
  • 可注入的公钥检索和缓存,以支持测试
  • 可定制的验证选项

用法

cargo add iap-jwt
use iap_jwt::{ValidationConfig};

let token = "..."; // JWT token from IAP

// reqwest Client implements iap_jwt::PublicKeySource with `reqwest` feature enabled (enabled by default)
let client = reqwest::Client::new();

let config = ValidationConfig::new(["/projects/1234567890/global/backendServices/test-service-id"])
    .with_google_hosted_domain(["example.com"])
    .with_access_levels(["ADMIN"]);

let claims = config.decode_and_validate(token, &client).await?;

println!("Authenticated user: {}", claims.sub);

许可证

此项目根据以下任一许可证许可,由您选择

  • Apache-2.0
  • MIT

依赖项

~4–16MB
~241K SLoC