AWS提供cognito,为开发人员提供注册和登录功能,包括与OpenId兼容身份提供商(如facebook,google等)的联合 .
cognito开发者控制台中有两种类别 . 这些是管理用户池和管理联合身份 .
我只是有点困惑,因为两者非常相似,即使我们想要提供我们的客户登录他们的Facebook帐户 . cognito用户池本身提供联合身份验证和联合身份池,也由身份验证提供程序提供 .
问题是,如果我想允许我的客户使用自己的Facebook帐户登录,我应该使用哪些类别?用户池或联合身份?
另外,如果我想在API网关中配置授权器,我必须创建cognito用户池但联合身份池 . 这是选择认知类别的主要原因吗?
2 回答
您可以将用户池视为包含用户属性(如姓名,电子邮件,电话号码等)的目录 . 这还提供注册,登录功能 . 您可以将用户联合到用户池中 . 目前,您可以使用Facebook,Google和SAML作为用户池的身份提供商 .
通过Cognito联合身份验证,您可以将用户联合到AWS并发布可用于访问策略中允许的资源的AWS凭据 . 对于Cognito Federated Identities,您还可以配置各种身份提供程序,例如Facebook,Google以及Cognito用户池,它们也可以是身份提供者 .
您使用的内容取决于您的使用案例 . 如果您的应用程序不需要AWS资源,则可能只需要用户池 .
Cognito user pool:
Cognito Federated Identities or Identity Pool:
Relationship between User pool and Identity pool:
Cognito Identity Pool只需要将所有身份提供者放在一起(将它们联合起来) . 通过所有这些,它现在可以为您的用户提供对AWS服务的安全访问,无论他们来自何处 .
So in summary, the Cognito User Pool stores all the users which then plugs into Cognito Identity Pool which can give the users access to AWS services.
source