故事:

我有一个带有用户的Cognito用户池。

该用户池是联合身份池中的身份验证提供程序。

我有一个S3存储桶,其中用户只能通过Auth Role上的策略通过以下方式上传到私有(private)路径:



用户可以通过aws javascript sdk从Web浏览器直接上载。

现在,这很好用,我的用户被限制在他们上传的位置。他们上传的文件最终在存储桶中具有如下路径:



然后,每当添加文件时,我都会从此S3存储桶中触发一个lambda。需要说明的是,用户不会调用lambda

问题:

我想从lamda访问用户池中的用户属性。我以为我可以使用cognito-identity子对象执行此查找。但是,我似乎找不到使用SDK API的方法来允许这种情况。

使用此API:
http://boto3.readthedocs.io/en/latest/reference/services/cognito-identity.html#CognitoIdentity.Client.describe_identity
我能够获得登录名/用户池,但无法获取与此身份标识关联的用户名。

如果我有用户名,则可以使用api:http://boto3.readthedocs.io/en/latest/reference/services/cognito-idp.html?highlight=cognito#CognitoIdentityProvider.Client.admin_get_user

有什么想法可以使用联合身份ID查找用户的属性吗?

最佳答案

如何将文件存储在arn:aws:s3:::BUCKET_NAME/${cognito-idp.us-east-1.amazonaws.com:sub}
这将解析为文件夹名称,例如f4cfd4a8-0e94-4287-8c5e-1b01538dd2a1
使用 Cognito用户池中的该用户sub,您可以list users with that sub,例如在cli中:aws cognito-idp list-users --user-pool-id=us-east-1_ndhjGJQYE --filter "sub = 'f4cfd4a8-0e94-4287-8c5e-example'"

关于amazon-web-services - Cognito : Federated Identity Id and User Attributes,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42965234/

10-11 12:00