首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Cognito User Pool还是Identity Pool For Social signIn?

使用Cognito User Pool还是Identity Pool For Social signIn?
EN

Stack Overflow用户
提问于 2019-12-14 05:55:18
回答 1查看 423关注 0票数 0

我们使用ECS来部署基于flask的应用程序,并使用API网关来允许经过身份验证的用户。只有托管在ECS上的应用程序才能访问数据库,而最终用户不能访问数据库。

我的问题是,如果用户从Cognito用户池(来自facebook或google)登录,他是否能够超越api网关,到达ECS并访问DB?或者,用户是否会面临API网关的AWS凭据和权限问题?

(我知道,如果用户通过身份池登录,Idp的最终用户将被分配IAM权限,然后AWS将对其进行管理)

谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-12-15 07:09:59

您可以同时使用这两种方法。但是,我建议使用Cognito用户池和托管UI。Cognito User Pool具有集成Facebook和Google for Social Sign In等身份提供商的能力,并且可以将属性自动映射到Cognito User Pool属性。然后,您可以配置Cognito身份池以注册已注册/登录到Cognito用户池的用户(通过社交身份提供者或常规登录),以获取临时AWS凭据。

示例代码:

代码语言:javascript
复制
const AWS = require('aws-sdk');
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
                IdentityPoolId: <identity pool id>,
                Logins: {
                    'cognito-idp.<region>.amazonaws.com/<user pool id>': <user jwt token>
                }
});

另外请记住,授权访问API Gateway的方式有三种:

通过身份池进行

  1. IAM (使用
    1. 签名请求(通过直接通过您的https://cognito-idp.{region}.amazonaws.com/{userPoolId}/.well-known/jwks.json Lambda授权器中的Authorization: 'Bearer <jwt>'头提供
      1. )(实现自定义逻辑,但必须使用https://cognito-idp.{region}.amazonaws.com/{userPoolId}/.well-known/jwks.json上提供的公钥自行解码)

使用身份和用户池,您可以通过选择通过令牌传递角色(例如使用由组角色授予的角色)或通过您根据用户池中的用户属性设置的规则来实现细粒度RBAC。

有关该here的更多信息

希望我能帮上忙:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59330278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档