Amazon web services AWS Cognito标识用户ID或用户池用户ID?用哪一个?
我有点搞不清楚应该使用哪个ID来实现以下目的: 有一个网上书店,里面有书籍和用户。每个用户可以有许多书。书籍与相关联的用户ID一起存储在DynamoDB表中Amazon web services AWS Cognito标识用户ID或用户池用户ID?用哪一个?,amazon-web-services,amazon-cognito,Amazon Web Services,Amazon Cognito,我有点搞不清楚应该使用哪个ID来实现以下目的: 有一个网上书店,里面有书籍和用户。每个用户可以有许多书。书籍与相关联的用户ID一起存储在DynamoDB表中 问题是,要使用哪个用户ID?池用户ID还是身份用户ID?谢谢。如果您希望用户能够直接读取和写入表,则需要使用标识池ID,因为IAM评估请求时,身份验证上下文中就是这样 如果这不是目的,并且您只想出于内部目的跟踪用户,那么使用用户池ID可能会更容易。使用用户池ID,您可以查找用户属性等,而身份池ID则不是这样 另一种说法是,如果您想利用IAM
问题是,要使用哪个用户ID?池用户ID还是身份用户ID?谢谢。如果您希望用户能够直接读取和写入表,则需要使用标识池ID,因为IAM评估请求时,身份验证上下文中就是这样 如果这不是目的,并且您只想出于内部目的跟踪用户,那么使用用户池ID可能会更容易。使用用户池ID,您可以查找用户属性等,而身份池ID则不是这样
另一种说法是,如果您想利用IAM授权访问需要使用标识池ID联合标识的内容,但如果您要在应用程序代码中自行处理授权,并且从不允许用户直接访问AWS资源,并且不允许用户通过其他身份验证机制登录,那么使用用户池ID更有意义。如果您希望用户能够直接读写到表中,则需要使用标识池ID,因为这是IAM评估请求时身份验证上下文中的内容 如果这不是目的,并且您只想出于内部目的跟踪用户,那么使用用户池ID可能会更容易。使用用户池ID,您可以查找用户属性等,而身份池ID则不是这样
另一种说法是,如果您想利用IAM授权访问需要使用标识池ID联合标识的内容,但如果您要在应用程序代码中自行处理授权,并且从不允许用户直接访问AWS资源,不允许用户通过其他身份验证机制登录,那么使用用户池ID更有意义。您可以这样想:用户池提供了一种登录方法,即身份验证方法 而Identity Pool提供了一种基于单个或多个登录方法(如Facebook登录、Google登录、Cognito用户池登录)创建用户身份的方法,并反过来创建与该身份相关的IAM权限。这更多的是关于授权——具有此身份的用户可以做什么 也就是说,您仍然可以仅使用用户池用户ID执行授权。您只需根据存储在用户池属性下的用户信息(例如,他们的电子邮件或姓名)自己编写自定义逻辑,以允许或拒绝他们访问某些书籍
如果您最终希望使用户使用多个登录源,例如脸谱网登录、谷歌登录、AWS认知登录,则考虑使用身份池用户ID。
在大多数情况下,如果您让用户通过应用程序登录,并在这种情况下通过应用程序访问资源书籍,那么存储用户池用户Id会使事情变得更简单。Cognito生成一个安全的用户池User IdToken,其中包含登录时的用户Id。应用程序只需将此令牌与后端请求一起传递,以允许/拒绝请求。您可以这样想:用户池提供了一种登录方法,即身份验证方法 而Identity Pool提供了一种基于单个或多个登录方法(如Facebook登录、Google登录、Cognito用户池登录)创建用户身份的方法,并反过来创建与该身份相关的IAM权限。这更多的是关于授权——具有此身份的用户可以做什么 也就是说,您仍然可以仅使用用户池用户ID执行授权。您只需根据存储在用户池属性下的用户信息(例如,他们的电子邮件或姓名)自己编写自定义逻辑,以允许或拒绝他们访问某些书籍
如果您最终希望使用户使用多个登录源,例如脸谱网登录、谷歌登录、AWS认知登录,则考虑使用身份池用户ID。
在大多数情况下,如果您让用户通过应用程序登录,并在这种情况下通过应用程序访问资源书籍,那么存储用户池用户Id会使事情变得更简单。Cognito生成一个安全的用户池User IdToken,其中包含登录时的用户Id。应用程序可以将此令牌与请求一起传递给您的后端以允许/拒绝该请求。用户池存储用户记录,而标识池具有用户可用的必要权限。因此,在这种情况下,您需要使用用户池Id,用户池存储用户记录,而标识池具有用户可用的必要权限。因此,在这种情况下,您需要使用用户池Id