JWT、OAuth和OIDC中audience、issuer、client术语的区别是什么?
谚语:"懂得一半知识的要义,就是在你不懂的时候坦诚说自己不知道"
术语定义与区别
以下针对JWT、OAuth 2.0、OIDC领域的三个核心术语,结合ASP.NET开发场景做极简解释:
Issuer(签发方)
- 本质是生成、签发JWT令牌的可信主体,一般对应你的身份提供方(IdP)、OAuth授权服务器,比如你项目里用的IdentityServer、Azure AD、Auth0服务
- JWT中对应
iss字段,存的是该服务的唯一标识(通常是服务的根域名,比如https://id.yourcompany.com) - 校验逻辑:你的后端API接收到JWT时,第一步就会校验
iss是否在预设的信任列表里,非法签发方的令牌直接拒绝
Audience(受众方)
- 本质是JWT令牌的指定接收方,也就是这个令牌允许访问的资源服务,一般对应你的业务API、资源服务器
- JWT中对应
aud字段,存的是目标资源的唯一标识(比如你订单API的标识https://api.yourcompany.com/order) - 校验逻辑:业务API接收到JWT时,会校验
aud是否等于自身的标识,避免其他业务的令牌被冒用调用当前接口
Client(客户端)
- 本质是发起授权请求、申请令牌的主体,也就是要拿着令牌去访问资源的应用
- OAuth/OIDC流程中对应
client_id参数,每个接入授权服务的应用都会分配唯一的client id,比如你写的ASP.NET MVC前端、Blazor WASM应用、移动端APP都是Client - 核心区别:Client是「要令牌的」,Audience是「收令牌、提供服务的」,Issuer是「发令牌的」,三者完全独立
实际场景示例
你开发的ASP.NET电商前端(Client)向公司的IdentityServer服务(Issuer)申请令牌,拿到的令牌只允许调用公司的支付API(Audience),三个角色不会交叉。
内容的提问来源于stack exchange,提问作者AbuDawood Oussama
相关产品推荐
相关产品推荐

