如果已经调用了GetUser,那么还需要对访问令牌进行JWKS验证吗?

0

【以下的问题经过翻译处理】 如果有一个附加了JWT授权程序的API Gateway v2 -> Lambda,则该lambda将接收到一个形式为“Bearer ewyxa....................”的authorization header,其中“Bearer”之后的所有内容均为访问令牌。此时,如果您需要获取用户属性,则可以使用该令牌调用cognito GetUser。我已经做到了这一点,它运作良好,但这使我想到了一些问题:

如果我调用GetUser(),是否还需要对访问令牌进行JWKS验证?文档说明GetUser需要一个未过期的访问令牌。要知道它没有过期,必须检查签名。文档没有说明它是如何做到这一点的(JWKS,还是cognito的内部机制)。这使我想知道是否需要附加用户池授权程序。如果没有授权程序,我仍然可以从标头中获取访问令牌,然后调用GetUser(),这将完成两项任务:获取用户属性,并同时验证访问令牌未过期且其签名良好。它甚至可能会检查访问令牌是否已被废止。

在GetUser的文档中,https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUser.html,并没有说明应该如何处理上述的问题。

所以,有人可以验证我的理解是否正确吗?

profile picture
EXPERTE
gefragt vor 5 Monaten28 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 是的,你是正确的。当你调用GetUser() API时,Cognito会验证访问令牌以确保它没有过期并具有有效的签名。你不需要在访问令牌上先执行JWKS验证,因为Cognito会在内部处理验证。 通过调用GetUser() API,你可以检索用户属性,确保访问令牌未过期且具有有效签名,以及检查它是否被吊销。这使得使用用户池授权程序是可选的,因为你可以在没有它的情况下完成相同的任务。

profile picture
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen