Получите доступ к авторизованному API Congito AppSync из функции Lambda

Это была первая ссылка для этой проблемы. Ответы мне не помогли, потому что я использую ядро, я думаю. Поэтому захотелось добавить это.

System.Net.WebUtility.UrlEncode(MyVariableName)

Если Url.Encode не работает, попробуйте приведенное выше. Также, как указано выше, не используйте это во всей строке URL, просто используйте его для отдельных переменных запроса. В противном случае есть вероятность, что ваш URL не будет работать.

1
задан Gerharddc 16 January 2019 в 09:55
поделиться

1 ответ

Используя пулы пользователей в качестве механизма аутентификации, невозможно получить токены для авторизации с помощью AWS AppSync без входа в систему в какой-то момент. С учетом сказанного, вы можете немного уменьшить накладные расходы. В конечном счете, все сводится к тому, что вы предложили в своем вопросе, используя «фальшивого пользователя». Это не редкое решение, которое предполагает наличие пользователя на уровне администратора, учетные данные которого будут доступны только с этой лямбды.

Прежде всего, я бы порекомендовал вам не использовать традиционный вход в систему SRP по причинам задержки. В качестве альтернативы можно использовать AdminInitiateAuth / ADMIN_NO_SRP_AUTH, чтобы переложить накладные расходы на вычисления SRP с вашей лямбды на серверную часть Cognito с включенным ADMIN_NO_SRP_AUTH в вашем пуле. Из вашего другого вопроса ( Authenticate AppSync request with adminInitiateAuth ) я понял, что вы задумывались об этом, однако важно отметить, что это просто другой API, используемый для входа пользователя. Вы можете прочитать Подробнее об этом здесь: https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-authentication-flow.html#amazon-cognito-user-pools-server- побочный поток аутентификации

Дополнительной альтернативой может быть пользовательский поток аутентификации. По той же ссылке выше есть более подробная информация о том, как это сделать, но вкратце вы можете настроить более быстрый поток, который будет соответствовать любым конкретным потребностям вашего добавления.

Чтобы немного увеличить накладные расходы, вы можете в некоторой степени сохранить эти токены в кэше. Это может означать просто сохранение его в памяти в Lambda и проверку его действительности / истечения перед использованием, или даже присоединение механизма удаленного кэширования.

0
ответ дан Jeff Bailey 16 January 2019 в 09:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: