使用 JWT 的 Oauth 2.0 授权

Posted

技术标签:

【中文标题】使用 JWT 的 Oauth 2.0 授权【英文标题】:Oauth 2.0 authorization using JWT 【发布时间】:2017-07-23 11:58:31 【问题描述】:

我正在使用 JWT 令牌在 web api 2 授权中实现,我是这个领域的新手。 我坚持生成 AudienceIdAudienceSecret 为什么我需要它们的目的?

【问题讨论】:

【参考方案1】:

从 OAuth 的角度来看,令牌是不透明的对象,不包含“受众”声明。如果你使用 JWT 令牌,那么你可以参考 JWT 规范 RFC7159

4.1.3。 “aud”(观众)声明

“aud”(受众)声明标识了 JWT 的接收者 用于。打算处理 JWT 的每个主体都必须 用受众声明中的价值来识别自己。如果校长 处理索赔并不表明自己具有价值 当此声明存在时,“aud”声明,则 JWT 必须是 被拒绝。在一般情况下,“aud”值是一个 case- 敏感字符串,每个都包含一个 StringOrURI 值。在里面 当 JWT 有一个受众的特殊情况下,“aud”值可能是 包含 StringOrURI 值的单个区分大小写的字符串。这 受众价值观的解释通常是特定于应用程序的。 使用此声明是可选的。

aud 的预期用途是识别令牌的预期接收者。它的使用是可选的,取决于应用程序的上下文。可能在你的 Oauth2 服务器的文档中指定了用途

也可以看看这个关于这个话题的详细answer

【讨论】:

以上是关于使用 JWT 的 Oauth 2.0 授权的主要内容,如果未能解决你的问题,请参考以下文章

OAuth 2.0实现分布式认证授权-jwt令牌和普通令牌的区别

OAuth2.0-JWT令牌

OAuth 2.0实现分布式认证授权-网关搭建

JWT 与 OAuth 2.0 有何不同?

oauth 2.0、JWT、Spring 安全、微服务

OAuth 2.0 范围参数与 OAuth 2.0 JWT access_token 范围声明