Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS Cognito标识用户ID或用户池用户ID?用哪一个?_Amazon Web Services_Amazon Cognito - Fatal编程技术网

Amazon web services AWS Cognito标识用户ID或用户池用户ID?用哪一个?

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一起存储在DynamoDB表中


问题是,要使用哪个用户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