为什么AWS Cognito有两个地方可以联合身份提供者?我认为身份池应该与身份提供者联合,并且想知道为什么用户池也可以。请提出两个位置的原因。
Cognito用户池也可以联合身份提供。
主要区别在于用户使用用户池vs身份池通过IDP登录后如何保存用户以及授予哪些权限。
因此,通过用户池进行的联合身份验证(本身)不会处理IAM级别的权限,对于AWS服务,该权限不允许更精细的权限集。
但是,身份池从身份提供者创建具有唯一身份(例如IAM角色)的用户,它们实质上允许您将AWS资源的授权委派给AWS本身。
参考方案的here!
类似的困惑源于您可以直接将Facebook和Google之类的外部社交提供程序与用户池直接集成的事实,而根本不使用联合身份。使用这种方法,用户可以使用其Facebook登录名注册并登录到您的应用程序,但从未分配过IAM角色。相反,用户池服务会自动将这些用户分配给一个Facebook组,然后将其Facebook个人资料的属性(例如名称,电子邮件,位置)映射到您在用户池中定义的用户属性。同样,这里的关键区别不是身份提供者是内部还是外部,而是是否在身份验证后将IAM角色分配给用户。
希望有帮助。