我是 oauth 和 JSON Web Token (jwt) 的新手。我正在尝试通过 Java JWT api ( https://github.com/auth0/java-jwt )验证授权令牌 (jwt )。我能够通过该 API 解码标头和有效负载,但无法验证令牌。
我对这个领域知之甚少,我以为我必须将 jwks-rs-java api ( https://github.com/auth0/jwks-rsa-java ) 添加到我的测试项目中以处理验证部分,所以我导入并根据我阅读的文档运行以下语句。
“oauth_server_domain”是 Oracle Access Manager (oam)。
JwkProvider provider = new UrlJwkProvider("oauth_server_domain");
Jwk jwk = provider.get("keyId_name");
Run Code Online (Sandbox Code Playgroud)
然后我得到以下异常:
com.auth0.jwk.SigningKeyNotFoundException: Cannot obtain jwks from url https://<oauth_server_domain>/.well-known/jwks.json
Caused by javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Run Code Online (Sandbox Code Playgroud)
我试图了解问题本身以及如何纠正它。
更新:
我确实有一个带有来自授权服务器 (oam) 的公钥的证书(*.der 格式)。似乎我需要按照本指南(https://auth0.com/blog/navigating-rs256-and-jwks/)手动创建 ./well-known/jwks.json 文件。我想我应该能够将二进制编码的证书转换为基于 base64 的证书(*.pem 格式?)。
但是如何从授权服务器公开该相对路径(例如https://auth_server_domain:port/.well-known/jwks.json)?
我很感激你在这个问题上的建议和意见。谢谢!
| 归档时间: |
|
| 查看次数: |
2123 次 |
| 最近记录: |