У меня есть доступ к RESTful API через AWS API Gateway.Я хочу, чтобы оба пользователя (аутентифицированные с помощью Cognito) И других (внутренних) служб могли вызывать API.Существует множество документов о том, как это сделать, но не о том, как сделать оба .
Я пытался использовать неопознанные федеративные удостоверения Cognito для авторизации сервисов .Я также использовал пулы пользователей Cognito для аутентификации людей .Однако API Gateway допускает только одного авторизатора (в данном случае AWS_IAM или авторизатор Cognito).Однако я не вижу способа сделать и то и другое.
Я думаю, что мне понадобится собственный Lambda-авторизатор, но у меня много проблем с поиском точной информации о том, как написать авторизатор с использованием IAM или Cognito.
Конечно, мы не можем быть первыми, кто хочет, чтобы и сервисы, и люди имели доступ к API.Недостаток документации об этом заставляет меня поверить, что я либо упускаю что-то до боли очевидное, либо что это тот случай использования, которого лучше избегать (в таком случае, что такое наилучшая практика?).
Есть лилюбой способ сделать оба?Есть ли пример лямбда-авторизатора, который может указать мне правильное направление?Есть ли что-то встроенное, что я упускаю?
Мы отвергли идею «притворяться», что пользователь Cognito - это человек, тогда как на самом деле это услуга, как нам кажетсязлоупотребление пулами пользователей Cognito и федерацией удостоверений.Аналогичным образом, обратное, когда пользователь Cognito объединен в роли роли IAM, совместно используемой как пользователями, так и службами, выглядит как злоупотребление аутентификацией пользователя.
Есть ли канонический способ сделать это?Если нет, то существует ли документация о том, как написать собственный Lambda-авторизатор, который бы выполнял обе задачи?