Доступ к идентичности "моя личность, которая существует в браузере идентификации" запрещена
Допустим, вы внедрили двух внешних провайдеров, таких как 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 даст вам это исключение. Убедитесь, что вы включаете его / правильно возобновляете сеанс приложения при перезапуске приложения... и т. Д. Я бы еще раз посмотрел на тебя, если бы ты не был, это определенно вызвало бы эту проблему.