禁止访问身份"存在于认知身份浏览器中的我的身份"



假设您实现了两个外部提供者,如Twitter和Facebook。对于Authenticated IAM角色信任关系,什么是正确的,最佳实践JSON文档?我试着阅读这篇博客文章和这个文档,但我仍然有问题。我目前的策略是:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Federated": "cognito-identity.amazonaws.com"
      },
      "Action": "sts:AssumeRoleWithWebIdentity",
      "Condition": {
        "StringEquals": {
          "cognito-identity.amazonaws.com:aud": "us-east-1:mypool"      
        },
        "ForAnyValue:StringLike": {
          "cognito-identity.amazonaws.com:amr": "authenticated"
        }
      }
    }
  ]
}

但我总是失败

禁止访问身份'my-identity-that-exists-in-cognito-identity-browser'。

这个问题在我从开发者提供的身份验证切换到Amazon的一个提供商之后才开始出现。除了非常标准的设置之外,我真的找不到任何例子,而且我在试图理解这个文档时遇到了问题。

开发人员的错误。正如@jeff-bailey所建议的,您必须确保您的提供商具有正确的登录映射。下面的例子并不足以满足所有的情况。在我的例子中,我有一个非常粘的会话,在应用终止甚至重新安装期间持续存在。如果你已经有了自己的社交令牌,并且跳过了传统的登录界面,那么必须不要忘记设置令牌。你不能只依赖fabric/facebook身份验证回调。

您为两个提供者使用两个池而不是仅使用一个池是否有特殊原因?Cognito限制您在每个池中为每个提供者提供一个应用程序,但您可以在同一池中使用不同的提供者,这将允许您使用标准角色。

编辑:听起来像是登录地图的内容可能持有的问题。具有经过身份验证的id的未来调用必须具有链接到它的相同登录令牌。如果你用Twitter认证创建一个身份id,尝试在没有Twitter令牌的情况下使用那个id会给你那个异常。确保你在应用重启时包含它/正确地恢复应用会话等。我会再看一遍,如果不是的话肯定会导致这个问题

相关内容

  • 没有找到相关文章

最新更新