我正在使用带有Developer Authenticated Identities Authflow Setup的Cognito身份池-之所以选择此身份验证流程,是因为出于某些业务原因,我们无法使用Cognito用户池。因此,我使用具有身份验证端点的API网关自己实现了用户身份提供者服务,该端点触发了Lambda函数。
因此我通过运行生成了临时Unit: microseconds
expr min lq mean median uq max neval cld
mean(x) 149.412 161.4115 181.1470 180.3395 204.2910 216.656 100 a
meanC(x) 394.605 400.4335 489.2311 481.6755 539.6835 1425.628 100 b
和AccessKey
SecretKey
和之后的cognitoidentity.getOpenIdTokenForDeveloperIdentity
,并获得了临时AWS凭证(临时cognitoidentity.getCredentialsForIdentity
和AccessKey
)。
现在,我想生成一个SecretKey
以便在我使用IAM授权的AWS API Gateway上对我的请求进行身份验证(因此它需要AccessToken
来授权请求)。
我的问题是-如何生成AccessToken
?
答案 0 :(得分:1)
我认为您不需要生成AccessToken。看看the API Gateway IAM Auth docs:
注意:要使用其他工具或环境手动验证发送到API Gateway的请求,必须使用Signature Version 4签名过程。有关更多信息,请参阅《 API Gateway REST API参考》中的Signing Requests。
通过上面的链接,您将看到:
Amazon API Gateway要求您通过签署请求对发送的每个请求进行身份验证。要签名请求,您需要计算数字签名[...]
还请看这个问题,它与上面的签名有关:Integrating an ID Pool with API Gateway
我自己还没有做过,但是如果您不得不从前端手动进行上述操作,我会感到非常惊讶。应该有一个可以用来为您处理签名的客户端,就像Postman在上面的AWS文档中的示例中所做的那样。即您向客户端提供了IAM凭据,客户端会在您提出请求时发出API请求,并使用您提供的IAM凭据自动处理签名。例如AWS Amplify seems to be able to do this for you。