У меня есть простое приложение AWS Lambda. Мне нужно использовать SSO, наш поставщик IdP — Okta. Приложением редко пользуется большое количество сотрудников. Какой самый простой способ сделать это без дополнительных затрат и сложностей с информационной безопасностью (Amazon Cognito,...)?
Примечание. В скобках указано (Amazon Cog[n]ito, ...). Я предполагаю, что вы предоставляете Amazon Cognito как нечто, что вы обдумываете, а не как нечто, чего вы хотите избежать.
Я думаю, что относительно простым и экономически эффективным способом было бы:
Будут определенные затраты, связанные с пулом пользователей и API, но я думаю, что они будут небольшими по сравнению со сложностью, которую вам придется принять при обработке всех потоков SAML в вашем собственном коде.
Я не сразу понимаю, как это исправить. Я заметил, что в этих документах (docs.aws.amazon.com/apigateway/latest/developerguide/…) говорится: «Для источника токена введите Authorization в качестве имени заголовка, чтобы передать токен идентификации или доступа, который возвращается Amazon Cognito, когда пользователь успешно входит в систему». Установлен ли для вашего источника токена значение «Авторизация»? Кроме того, когда он перенаправляется на ?code=..., какой путь? Это тот же путь, что и у вашего приложения? Когда я использовал Cognito в прошлом, мне приходилось выполнять некоторые другие действия по пути, на который меня перенаправляли, но это может быть неприменимо здесь.
В этих документах предполагается, что у вас есть REST API и контроль над клиентским кодом, поэтому вы можете взять токен и поместить его в заголовок авторизации следующего запроса. В моем случае у меня есть веб-приложение, поэтому я не могу управлять браузером и заголовками запросов браузеров.
Спасибо, Дуг! Я сделал то, что вы сказали, теперь у меня проблема. Я использую REST API API Gateway, но обслуживаю браузерное приложение, а не API. Когда я интегрировал Cognito, авторизатор Cognito перенаправляет приложение с ?code= в URL-адресе, однако это не удается, приложение выдает ошибку 401. Кажется, приложение ожидает заголовок авторизации, а не аргумент кода?