Доступ к идентичности "моя личность, которая существует в браузере идентификации" запрещена

Допустим, вы внедрили двух внешних провайдеров, таких как Twitter и Facebook. Какой правильный JSON-документ является правильным для отношений доверия с проверенной ролью IAM. Я пытался прочитать этот пост и эту документацию, но у меня все еще есть проблемы. Моя текущая политика:

{
  "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"
        }
      }
    }
  ]
}

Но я продолжаю получать провал

Доступ к идентификатору "моя личность, которая существует в браузере идентификации" запрещена.

Это начало разрушаться только после того, как я переключился с аутентификации, предоставленной разработчиком, на одного из поставщиков Amazon. Я не могу найти никаких примеров, кроме очень стандартных настроек, и у меня возникают проблемы при попытке получить эту документацию.

ОБНОВИТЬ

Ошибка разработчика. Как подсказал @jeff-bailey, вы должны убедиться, что у вашего провайдера правильная карта входа. Следующих примеров недостаточно, чтобы удовлетворить все ситуации. В моем случае, у меня очень липкие сеансы, которые сохраняются при завершении работы приложения и даже при переустановке. Если у вас уже есть социальные токены и вы пропустили традиционный экран входа в систему, вы не должны забывать устанавливать свои токены. Вы не можете просто положиться на обратный вызов аутентификации Fabric/ Facebook.

1 ответ

Решение

Есть ли конкретная причина, по которой вы используете два пула для двух провайдеров, а не один? Cognito ограничивает вас одним приложением для каждого поставщика в пуле, но вы можете использовать разных поставщиков в одном и том же пуле, что позволит вам использовать стандартные роли.

Изменить: Похоже, что содержимое карты логинов может содержать проблему. Будущие вызовы с идентифицированным идентификатором должны иметь тот же токен входа, который был связан с ним. Таким образом, если вы создали идентификатор с помощью аутентификации Twitter, попытка использовать этот идентификатор без этого маркера Twitter даст вам это исключение. Убедитесь, что вы включаете его / правильно возобновляете сеанс приложения при перезапуске приложения... и т. Д. Я бы еще раз посмотрел на тебя, если бы ты не был, это определенно вызвало бы эту проблему.

Другие вопросы по тегам