如何使用AWS Cognito从移动设备到AWS服务(即CloudSearch)进行经过身份验证的请求?

时间:2015-02-12 13:49:09

标签: amazon-web-services amazon-iam amazon-cloudsearch amazon-cognito

我在最近一两天内阅读了大量的AWS文档,但还没有找到真正回答以下内容的任何内容:

如果移动应用使用AWS Cognito作为身份验证/身份提供商,我知道我们可以编写AWS IAM策略来指定用户可以采取的AWS资源和操作。有一些简短的政策示例允许用户直接将文件上传到S3,但仅限于"文件夹"用他们的用户身份命名。有很多提及能够使用策略来控制对各种AWS资源的访问,包括CloudSearch。

我的主要问题是:如何从移动客户端向AWS服务发出请求,以便他们拥有这些策略运行所必需的用户上下文(令牌或w / e)? AWS移动SDK可能对此有所帮助,但在这种情况下,请求如何对未包含在AWS移动SDK(如CloudSearch)中的资源进行请求? CloudSearch查询通过REST Api暴露自己,那么在这种情况下,移动客户端如何提供用户上下文,这是策略工作所必需的?

1 个答案:

答案 0 :(得分:1)

AWS API的请求通过凭据进行身份验证。对于几乎所有服务,此身份验证通过signature version 4进行,Amazon Cognito authflow使用凭据凭证的访问密钥部分签名的请求的有效负载的HMAC。

对于作为{{3}}的一部分出售的凭证,还包括sessionKey,其中包含有关登录用户的上下文信息。当评估与这些凭据关联的策略时,可以使用这些凭据替换变量上下文值(例如 cognito-identity.amazonaws.com:sub 表示身份ID)以确定凭据是否具有指定的访问权限。