将cognitoIdentityId用作公共用户ID是否安全?

时间:2019-02-22 23:25:44

标签: amazon-web-services amazon-cognito aws-appsync

公开$ ctx.identity.cognitoIdentityId并将其用作用户的公共ID是否安全?由于区域信息的原因,暴露cognitoIdentityId感觉很漏洞。

我正在使用AWS Identity and Access Management(IAM)作为我的授权类型。

我不确定这是否相关,但是我的身份池确实允许未经身份验证的身份。

谢谢!

1 个答案:

答案 0 :(得分:2)

一个Cognito身份ID保证在其存在的区域中是唯一的,但是在某些情况下它可能会更改:身份合并。

假设您已登录Facebook在手机上使用您的应用程序,但在平板电脑上使用了Cognito用户池。如果您想在某个时候链接这些帐户,则需要使用两个登录令牌登录一次,然后提供一个令牌就足够了。但是,在此单次登录期间,将启动身份合并。合并的结果将是一个禁用的身份ID,以及一个拥有两个令牌的活动ID。 Cognito完全随机地对待此过程-可能是禁用的。

完全有可能不适用于您的应用程序,但是如果您有多个配置的提供程序,则需要考虑一些问题。您必须拦截此类事件并相应地更新数据存储。

至于泄漏id本身,这是一个值得关注的问题。除了使用非AWS开发人员无法理解的区域前缀看起来很有趣之外,它还可能存在一些安全风险(取决于您已链接到该类型用户的权限)。我可能会建议使用一些哈希或编码来对其进行混淆。