登录
首页 >  Golang >  Go问答

Amazon Cognito 的 JWK 不含有 X5c 项

来源:stackoverflow

时间:2024-03-19 23:42:32 272浏览 收藏

Amazon Cognito 提供的 JSON Web 密钥集 (JWKS) 缺少 X5c 字段,这给使用 JWT 中间件验证令牌签名带来挑战。与 Auth0 服务不同的处理方式,JWT 中间件可能不完全适用于 Cognito。

问题内容

我正在尝试将我的 go web 服务器连接到 amazon cognito 进行身份验证。我正在使用 gorilla 的 jwt-middleware。我还遵循 autho 的指南:https://auth0.com/docs/quickstart/backend/golang/01-authorization

本指南使用以下内容创建证书:

for k, _ := range jwks.keys {
        if token.header["kid"] == jwks.keys[k].kid {
            cert = "-----begin certificate-----\n" + jwks.keys[k].x5c[0] + "\n-----end certificate-----"
        }
    }

aws 表示使用 https://cognito-idp.{region}.amazonaws.com/{userpoolid}/.well-known/jwks.json 获取您的 jwks 文件

我这样做了,但我的文件缺少 x5c 字段。它看起来像:

{
    "keys": [{
        "alg": "RS256",
        "e": "AQAB",
        "kid": "abcdefghijklmnopqrsexample=",
        "kty": "RSA",
        "n": "lsjhglskjhgslkjgh43lj5h34lkjh34lkjht3example",
        "use": "sig"
    }, {
        "alg":
        "RS256",
        "e": "AQAB",
        "kid": "fgjhlkhjlkhexample=",
        "kty": "RSA",
        "n": "sgjhlk6jp98ugp98up34hpexample",
        "use": "sig"
    }]
}

我该如何验证通过客户端使用此文件发送的授权标头发送的令牌的签名?

感谢您的帮助!


解决方案


查看此线程 How to verify a JWT Token from AWS Cognito in Go?

示例中使用的 JWT 中间件“github.com/auth0/go-jwt-middleware”深深植根于 auth.com 服务处理 JWT 的方式,可能并不完全适用于其他提供商和服务。

今天关于《Amazon Cognito 的 JWK 不含有 X5c 项》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>