OAuth2:JWT授权授权和使用JWT客户端身份验证的客户端凭据授权之间有什么区别?
OAuth2 JWT概要文件引入了将JWT用作授权授予和客户端身份验证的可能性 JWT客户端身份验证功能独立于特定的授权类型,并且可以用于任何授权类型,也可以用于客户端凭据授权 但是,使用JWT授权类型似乎与在JWT客户端身份验证中使用客户端凭据授权完全相同,只是语法略有不同 在这两种情况下,客户端都会联系令牌端点以获取访问令牌:OAuth2:JWT授权授权和使用JWT客户端身份验证的客户端凭据授权之间有什么区别?,oauth,oauth-2.0,jwt,Oauth,Oauth 2.0,Jwt,OAuth2 JWT概要文件引入了将JWT用作授权授予和客户端身份验证的可能性 JWT客户端身份验证功能独立于特定的授权类型,并且可以用于任何授权类型,也可以用于客户端凭据授权 但是,使用JWT授权类型似乎与在JWT客户端身份验证中使用客户端凭据授权完全相同,只是语法略有不同 在这两种情况下,客户端都会联系令牌端点以获取访问令牌: POST /token.oauth2 HTTP/1.1 Host: as.example.com Content-Type: application/x-www-fo
POST /token.oauth2 HTTP/1.1
Host: as.example.com
Content-Type: application/x-www-form-urlencoded
grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer&assertion=[JWT]
vs
可能很少。在OAuth中,识别客户的方式和请求授权的方式是两个不同的概念,因此问题分别针对这些概念:
- 客户端可以使用JWT向授权服务器进行身份验证吗?对
- 客户能否使用JWT发出授权请求?对
除此之外,,我认为,该设计只是为客户机和服务器提供了一定程度的自由度,以便在迁移这一部分的同时,根据需要,使现有握手的这一部分保持不变。对于Josh C的伟大答案,有一点不同的看法:碰巧,客户机身份验证和授权凭据都可以可以表示为JWTs,但它们背后的语义不同 这是关于关注点的分离:客户使用识别他们的凭证进行身份验证,即他们是所谓的
主体
,而他们使用发给他们的补助金,即他们是所谓的受众
。或者如规范草案第12版()所述:
POST /token.oauth2 HTTP/1.1
Host: as.example.com
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials&client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer&client_assertion=[JWT]