Oauth 如何区分JWT访问令牌和用作授权头的刷新令牌

Oauth 如何区分JWT访问令牌和用作授权头的刷新令牌,oauth,oauth-2.0,jwt,jwt-auth,Oauth,Oauth 2.0,Jwt,Jwt Auth,如何确定Authorization:Bearer中使用的JWT令牌。。。是访问令牌或刷新令牌。换句话说,是什么阻止用户在授权头中使用他的JWT刷新令牌而不是acces令牌 当我在本指南部分中查看访问令牌和刷新令牌的有效负载时,我看不到任何真正的方法来识别哪个是哪个 刷新令牌: { "jti": "3e53955fcff6429a8a187c4c37f1b592-r", "sub": "48a8d464-12dd-4b14-b7a0-96af58379ffb", "scope": [ "o

如何确定Authorization:Bearer中使用的JWT令牌。。。是访问令牌或刷新令牌。换句话说,是什么阻止用户在授权头中使用他的JWT刷新令牌而不是acces令牌

当我在本指南部分中查看访问令牌和刷新令牌的有效负载时,我看不到任何真正的方法来识别哪个是哪个

刷新令牌:

{
"jti": "3e53955fcff6429a8a187c4c37f1b592-r",
"sub": "48a8d464-12dd-4b14-b7a0-96af58379ffb",
"scope": [
    "openid",
    "airports.all"
],
"client_id": "airports",
"cid": "airports",
"user_id": "48a8d464-12dd-4b14-b7a0-96af58379ffb",
"origin": "uaa",
"grant_type": "password",
"user_name": "airports-all",
"rev_sig": "4c3b3810",
"iat": 1530739971,
"exp": 1533331970,
"iss": "https://192.168.50.6:8443/oauth/token",
"zid": "uaa",
"aud": [
    "openid",
    "airports"
]
}
访问令牌:

{
"jti": "fe39323464d74fb5a6fcb71d89f722c4",
"sub": "48a8d464-12dd-4b14-b7a0-96af58379ffb",
"scope": [
    "openid",
    "airports.all"
],
"client_id": "airports",
"cid": "airports",
"azp": "airports",
"user_id": "48a8d464-12dd-4b14-b7a0-96af58379ffb",
"origin": "uaa",
"grant_type": "password",
"user_name": "airports-all",
"email": "airports-all@example.com",
"auth_time": 1530739970,
"rev_sig": "4c3b3810",
"iat": 1530739971,
"exp": 1530783171,
"iss": "https://192.168.50.6:8443/oauth/token",
"zid": "uaa",
"aud": [
    "openid",
    "airports"
]
}

标准是什么?放置不同的作用域?

在您发布的链接中,建议使用非JWT的不透明刷新令牌,您应该使用该配置

客户端(通常是UI)应该只向后端发送访问令牌,任何其他类型的令牌都应该被拒绝。正确的配置将强制执行此操作

后端的工作是验证接收到的JWT。如上所述的非标准设置可能意味着这将与刷新令牌一起工作,但这在两个方面是不好的:

  • API消息凭据的生命周期很长,如果令牌被截获,安全风险会更大
  • 该解决方案是不可移植的,并且可能在将来为客户端中断,或者如果您更改了提供程序