我正在通过使用JSON Web令牌进行测试以理解和实施用户授权系统。
寻找有关令牌配置的信息让我产生了两个关于使用两个索赔有效负载,即Sub和Aud的问题。
{
"iss": "www.miweb.com", // issuer
"iat": 1455550200, // time was issued
"exp": 1455559810, // expiration timestamp
"nbf": 1455550260, // not before
"jti": "31d6cfe0d16ae931b73c59d7e0c089c0", // unique identifier
"sub": "", // ¿subject?
"aud": "", // ¿?
"data": {/* attached data */}
}
从我观察到的情况来看,很少使用这两种说法。我的问题是:
哪种情况可以用于什么目的?
非常感谢,问候
同样用西班牙语写的StackOverflow问题:http://yoursite.com
Ps:抱歉使用该语言,而不是域名。
编辑:代码中评论的翻译
答案 0 :(得分:2)
Subject('sub'
)声明标识了经过身份验证的用户或应用程序(如果client credentials flow)。
Audience('aud'
)声明表示发出令牌的人。
假设我的客户端应用程序需要代表service A
致电user X
。
通常,我的应用程序将与授权服务器通信以对用户进行身份验证(例如,使用OAuth2 grant flows之一)并请求访问service X
。授权服务器将对用户进行身份验证并征求同意。
如果用户同意,授权服务器将发出一个JWT令牌,其主题声明对user X
唯一,而观众声明为service A
。