如何通过AWS Java SDK调用使用Cognito隐式授予授权的api端点

时间:2019-07-02 18:14:38

标签: java aws-sdk aws-api-gateway amazon-cognito

当前正在尝试创建一些验收测试,以调用已通过Cognito隐式授权进行身份验证的api端点。

是否可以使用aws sdk和Cognito sdk请求访问密钥来调用我的api端点? 我无法通过aws文档和一般的互联网获得任何帮助。

我的验收测试在带有黄瓜和黄瓜的Java上运行。

1 个答案:

答案 0 :(得分:0)

您可以通过Cognito API的initiateAuth进行身份验证,以直接获取令牌。

https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html

默认的身份验证方式需要SRP。

如果需要,可以通过创建单独的应用客户端来测试并在该应用客户端的Enable username-password (non-SRP) flow for app-based authentication (USER_PASSWORD_AUTH)设置中选中App Clients来避免SRP开销。

您可能希望进行一些部署配置,以便此应用程序客户端仅在测试环境中可用。否则,您可以为应用程序客户端创建一个秘密。

除了USER_PASSWORD_AUTH流之外,还有ADMIN_NO_SRP_AUTH通过adminInitiateAuth,它需要AWS密钥(也必须在“ App Client”设置中启用)。

您可以在此处了解有关这些流程的更多信息:https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-authentication-flow.html?icmpid=docs_cognito_console#amazon-cognito-user-pools-admin-authentication-flow