用于 API 令牌身份验证的 AWS Cognito

AWS Cognito for API token authentication

我正在 java 中构建一个 HTTP API,它使用 AWS cognito,开发人员验证身份以提供令牌来保护 API。我已将登录系统配置为在用户登录时发出认知令牌,并且认知身份池包含每个用户和与我的后端关联的开发人员身份,但我很难找到一种直接的方法来检索用户特定来自 cognito 令牌的开发者标识符。我曾尝试使用 AssumeRoleWithWebIdentityResult API 调用,但无法找到关于它的文档来确定开发人员标识符,只有获取临时 AWS 凭证的示例。

在 GetOpenIdTokenForDeveloperIdentity 返回的令牌中,您为用户提供的唯一标识符位于 "amr" 字段中。所以你需要破解令牌才能得到它。

编辑:正如 Alexis N-o 指出的那样,您可以使用 Cognito Identity ID 查找开发者身份:

http://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_LookupDeveloperIdentity.html

一旦您拥有临时 AWS 凭证,当您调用后端时,您可以在上下文中访问调用者的认知标识符。然后你可以检索开发者标识符 using lookupDeveloperIdentity on the server side.

如果您使用 API gateway or Lambda

,请检查这些页面以检索上下文数据