Я пишу веб-приложение, которое использует AWS Cognito UserPools для аутентификации пользователей и IdentityPools для предоставления прямого доступа к корзине S3.
Это веб-приложение JavaScript имеет собственный идентификатор клиента приложения в UserPool, с которым оно взаимодействует с ним.
У меня также есть пара функций Lambda, выполняющих некоторые функции администратора для UserPool и IdentityPool. Эти лямбда-функции имеют свой собственный идентификатор клиента приложения.
Раньше в IdentityPool добавлялся только один поставщик аутентификации с тем же идентификатором клиента приложения, который был установлен лямбда-функциями.
В этой настройке у веб-приложения были проблемы. Мне удалось пройти аутентификацию в UserPool, но когда токен идентификации был отправлен в IdentityPool, я получил сообщение об ошибке «Токен не от поддерживаемого поставщика этого пула идентификации». Я полагаю, это произошло потому, что для параметра aud
в JWT был задан идентификатор UserPool, который не был добавлен в IdentityPool
В конце концов я понял, что могу избавиться от ошибки, если добавлю в IdentityPool другого «провайдера аутентификации», указав тот же идентификатор UserPool и другой идентификатор клиента приложения.
Мой вопрос сейчас таков: правильный ли это подход? Возможно, я неправильно понимаю значение и использование идентификатора клиента приложения? Я далеко от базы с моим подходом?