【发布时间】:2019-11-13 10:23:00
【问题描述】:
目前正在尝试创建一些验收测试,以调用已通过 Cognito 隐式授权进行身份验证的 api 端点。
是否有可能使用 aws sdk 和 Cognito sdk 请求访问密钥来调用我的 api 端点? 我通过 aws 文档和一般的互联网找到的帮助很少。
我的验收测试使用黄瓜和小黄瓜在 java 上运行。
【问题讨论】:
标签: java aws-sdk aws-api-gateway amazon-cognito
目前正在尝试创建一些验收测试,以调用已通过 Cognito 隐式授权进行身份验证的 api 端点。
是否有可能使用 aws sdk 和 Cognito sdk 请求访问密钥来调用我的 api 端点? 我通过 aws 文档和一般的互联网找到的帮助很少。
我的验收测试使用黄瓜和小黄瓜在 java 上运行。
【问题讨论】:
标签: java aws-sdk aws-api-gateway amazon-cognito
您可以通过 Cognito API 的 initiateAuth 进行身份验证以直接获取令牌。
https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html
默认的身份验证方式需要 SRP。
如果您愿意,您可以通过创建一个单独的应用客户端进行测试并在该应用客户端的App Clients 设置中检查Enable username-password (non-SRP) flow for app-based authentication (USER_PASSWORD_AUTH) 来避免SRP 开销实施。
您可能希望进行一些部署配置,以便此应用程序客户端仅在测试环境中可用。否则,您可以为应用客户端创建一个密钥。
除了USER_PASSWORD_AUTH 流之外,还有ADMIN_NO_SRP_AUTH 通过adminInitiateAuth 需要AWS 密钥(也必须在“应用程序客户端”设置中启用)。
【讨论】: