首页 > 解决方案 > 使用 x5c 证书验证 JWT

问题描述

我很难使用 x5c 验证令牌。(MS OAuth/Azure) 在 Rust 中使用 jsonwebtoken。

下面是代码...

// Trying to isolate the problem by only checking the signature. 
let validation_config = jsonwebtoken::Validation {
    algorithms: vec![jsonwebtoken::Algorithm::RS256],
    leeway: 0,
    validate_exp: false,
    validate_iat: false,
    validate_nbf: false,
    aud: None,
    iss: None,
    sub: None
};
let token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIn...";
let x5c_cert = "MIIDBTCCAe2gAwIBAgIQKOfEJNDyDplBSXKYcM..."; 

let raw_der = base64::decode_config(der, base64::STANDARD).unwrap();
let d = jsonwebtoken::decode::<MsOAuthPayload>(&token, &raw_der, &validation_config);

以上总是返回 InvalidSignature。

有人对我在这里做错了什么有一些见解吗?

谢谢

编辑:这里的最小工作示例。https://pastebin.com/RqqRaKkU

标签: rustjwt

解决方案


推荐阅读