jwt.io在哪里从JWT令牌获取公钥? [英] Where does jwt.io get the public key from JWT token?

查看:350
本文介绍了jwt.io在哪里从JWT令牌获取公钥?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在通过 jwt.io (在调试器"部分中)对JWT令牌进行解码,以查看标头,有效载荷.令人惊讶的是,它也进行了验证,我可以看到它(jwt.io调试器)也能够检索公钥.

I was decoding a JWT token via jwt.io (in the Debugger section) to see Headers, Payload. Surprisingly, it also verified, and I could see it (jwt.io debugger) is able to retrieve the public key as well.

所以我的问题是:JWT令牌是否提供公钥以及JWT令牌的一部分?

So my question is: Does JWT token provide the public key as well as part of the JWT token?

我正在粘贴其中的一部分(由于安全原因无法完全粘贴,将截断实际JWT令牌的一部分)

I am pasting part of it (can't paste full due to security reasons, will be truncating part of the actual JWT token)

F3cy5jb21cL2V1LXdlc3QtMV9ZckVRYjY5Z1giLCJleHAiOjE2MDE2Mzg4OTMsImlhdCI6MTYwMTYzNTI5MywidmVyc2lvbiI6MiwianRpIjoiNmI2YmZiNmYtY2M0MS00N2Q5LWI0YzYtOTBmOGFmNWM2MjQ1IiwiY2xpZW50X2lkIjoiMTM0MWxxa3N1ZmUwbm1vaW9kdnRjc2t2cWIifQ.RtKfz54uBgSZ1gc4KRPjzL4dPe5AbH2YMJu-DDvIxBzgMjqT9q4ApGzcWYB62-MgDUf-F_hK0kF9eIwAi9fARhp 0HGGnyiuydW_our6zE3EphLvXQByTDY5xzOUuSvt7WbDZWeSfpHcjrBttRSJAPOsZ2gInafKjZgWKyGL4vJB9swEhOMSSpTQDGWKenJCyp4emhe8E4XGzYTo9WEb-Wqg6sI__LrusDNd917FaocPKBxA

解码后的消息(再次被截断)

标题

{
  "kid": "cJ0PzkBXPyjX7FM67jcOECIY=",
  "alg": "RS256"
}

有效载荷:

{
  "sub": "13lqs0moiodvtcskvqb",  
  "token_use": "access",  
  "scope": "example.com/Manage",  
  "auth_time": 1601293,  
  "iss": "https://cognito.eu.amazonaws.com/",  
  "exp": 1601638,  
  "iat": 10353,  
  "version": 2,  
  "jti": "cc1-47d9-b6-5c6245",  
  "client_id": "nmodvtcb"  
}

在其中可以看到公钥(已截断)

In there, can see the Public key (truncated)


-----BEGIN PUBLIC KEY-----
QEFAAOCAQ8AMIIBCxmf9bakWk
556KYmIZB+Sy1ftkkGa4qlUsmRvcG2Hll+7HBWp1ao6MVLskjdaaKg8iH1Iz4DKG
lgqT/ndwhoxvTBuvm0X2CZoNzZn4S8wDTr78m/S/YegZRhv6y58gkiKSEmbbC/g5
Bp+AF88NwBvLm1jdd
-----END PUBLIC KEY-----

从jwt.io中的调试器在哪里检索公用密钥?我不明白这一点.

Where from the debugger in jwt.io is retrieving the public key? I am not able to understand this.

推荐答案

令牌包含令牌的发行者(iss)和密钥ID(kid),密钥ID(kid)标识验证签名所需的公共密钥 有了这些信息,jwt.io可以找到JWK形式的公钥( JSON Web密钥)在JWKS端点(/.well-known/jwks.json)上,以验证令牌. JWKS( JSON Web密钥集)包含一个JWK数组,该链接显示了一个示例.

The token contains the issuer (iss) of the token and the key id (kid), which identifies the public key that is needed to verify the signature With this information, jwt.io can find the public key in form of a JWK (JSON Web Key) on a JWKS endpoint (/.well-known/jwks.json), to verify the token. A JWKS (JSON Web Key Set) contains an array of JWKs, the link shows an example.

根据认知文档,当您使用Amazon用户池对用户进行身份验证时,将使用此机制.

According to the cognito documentation, this mechanism is used, when you use the Amazon user pool to authenticate your users.

通过jwks端点提供密钥是一种标准机制,其他提供者(例如, Microsoft Azure.

Providing keys via a jwks endpoint is a standard mechanism which is also used by other providers, e.g. Microsoft Azure.

这篇关于jwt.io在哪里从JWT令牌获取公钥?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆