oauth2.0 我应该在JWT令牌中验证哪些声明?

vd8tlhqk  于 2023-01-08  发布在  其他
关注(0)|答案(1)|浏览(104)

我应该验证发行者和受众吗?
如果我只验证发行者,发件人可能是授权使用其他应用的人?如果我只验证受众,发件人可能是授权使用同名应用但由不同发行者发行的人(这意味着不同的应用)?

avwztpqn

avwztpqn1#

如果两者都存在,则应验证两者。
您应该始终验证issuer属性是否是您所期望的。令牌中issuer字段的两个用途是:为用户身份声明提供命名空间;如果您接受多个issuer对您的服务有效,则提供对正确验证密钥的引用。(一个可信的发行者,并且签名通过检验)您可能觉得技术上不需要读取发行者字段,但它是签名数据的一部分,并且您知道它应该是什么,因此从加密安全的Angular 来看,验证它更好。
如果在令牌中给出了受众,您应该尊重它。如果颁发者希望您仅将身份用于特定服务,而您不是该服务,则应用程序或用户的意图存在问题。在这种情况下,您最好不要接受令牌。但如果未提供受众,而您信任颁发者,接受令牌应该不是问题。

相关问题