amazon-web-services - 将 cognitoIdentityId 用作公共 userId 是否安全?
问题描述
公开和使用 $ctx.identity.cognitoIdentityId 作为用户的公共 ID 是否安全?由于区域信息,暴露 cognitoIdentityId 感觉泄漏。
我使用 AWS Identity and Access Management (IAM) 作为我的授权类型。
我不确定这是否相关,但我的身份池确实允许未经身份验证的身份。
谢谢!
解决方案
保证 Cognito 身份 id 在其存在的区域中是唯一的,但是在一种情况下它可能会改变:身份合并。
假设您已登录 Facebook 以在手机上使用您的应用,但在平板电脑上使用 Cognito 用户池。如果您想在某个时候链接这些帐户,则需要使用两个登录令牌登录一次,之后提供一个令牌就足够了。但是,在此单次登录期间,将启动身份合并。此合并的结果将是一个禁用的身份 ID,以及一个拥有两个令牌的活动 ID。Cognito 完全随机地处理这个过程——它可能是被禁用的。
完全有可能不适用于您的应用程序,但如果您有多个配置的提供程序,则需要考虑。您必须拦截这些类型的事件并相应地更新您的数据存储。
至于泄露 id 本身,这是一个值得关注的问题。除了使用非 AWS 开发人员无法理解的区域前缀看起来很有趣之外,它还可能存在一些安全风险(取决于您已链接到该类型用户的权限)。我可能会推荐一些散列或编码来混淆它。
推荐阅读
- deep-learning - 函数 IBuilder::buildEngineWithConfig() 返回 null
- json - 当实例化一个用snakeYAML 解析的节点时,你可以将一个节点的祖先的引用传递给它的构造函数而不使用锚点/别名吗?
- python - 熊猫替换不匹配的子字符串
- ios - 从剪贴板粘贴文本时自定义 NSTextStorage 崩溃
- java - 如何在一个 servlet 中有多个端点并在 web.xml 中声明它们
- flutter - 如何使用颤振获取移动消息
- xslt - 将属性从节点添加到父节点
- python - 是否可以在 csv 文件中找到峰值并将峰值添加到同一 csv 文件的单独列中?(没有绘图)
- javascript - Javascript:等待循环内的问题
- microsoft-graph-api - Microsoft Graph Api - 订阅后出现内部服务器错误