Amazon web services 将用户从一个AWS Cognito池迁移到另一个池,并保留CognitoId/Sub值

Amazon web services 将用户从一个AWS Cognito池迁移到另一个池,并保留CognitoId/Sub值,amazon-web-services,amazon-cognito,Amazon Web Services,Amazon Cognito,AWS Cognito的最新ish版本现在允许用户名输入不区分大小写,但是您不能在当前用户池上启用它,需要创建一个新的用户池,然后将用户迁移到其中 因此,我创建了一个新的用户池,并成功地实现了迁移lambda,但我遇到了最后一个问题。我们在其他系统中使用CognitoId作为主键,现在当我将从UserPool a迁移到UserPool B时,它会创建一个新的CognitoId,而且(从我所看到的)手动将CognitoId/Sub设置为新池中前一个池的值似乎是不可能的 以前有没有人遇到过这种情况,

AWS Cognito的最新ish版本现在允许用户名输入不区分大小写,但是您不能在当前用户池上启用它,需要创建一个新的用户池,然后将用户迁移到其中

因此,我创建了一个新的用户池,并成功地实现了迁移lambda,但我遇到了最后一个问题。我们在其他系统中使用CognitoId作为主键,现在当我将从UserPool a迁移到UserPool B时,它会创建一个新的CognitoId,而且(从我所看到的)手动将CognitoId/Sub设置为新池中前一个池的值似乎是不可能的


以前有没有人遇到过这种情况,并且有了解决办法,因为更新对新密钥的所有引用并不容易。(新的CognitoId也不会返回到流程中的任何函数)

当创建用户时,服务会在内部生成Cognito Sub。 存储旧用户池中的“sub”的一种方法是将其存储在新用户池中。您可以在ID令牌中检查自定义属性声明,以从现有系统访问用户数据

自定义属性仅在中可用。如果您当前正在其他系统中使用Cognito访问令牌,那么这种方法将不适用于您