Учетные данные API AWS с OneLogin SAML и MFA
Мы хотим позволить нашим пользователям получать набор временных учетных данных CLI для данной роли AWS, выполнив вход в OneLogin с паролем и MFA. У нас есть работающее решение, но оно требует от пользователя полной повторной аутентификации в OneLogin (включая MFA) каждые 60 минут по истечении срока действия временных учетных данных AWS. Я думаю, что это не получится - наши пользователи привыкли к постоянным учетным данным API, привязанным к реальному пользователю IAM.
В идеале мы хотели бы позволить пользователям проходить аутентификацию один раз в день, надежно кэшировать полученное утверждение SAML и использовать его для прозрачного обновления учетных данных API AWS по мере необходимости. Я имею в виду нечто вроде aws-keychain, которое будет использовать локальное хранилище учетных данных ОС для запоминания утверждения SAML и запрашивать ввод данных только после истечения времени ожидания сеанса OneLogin.
Это почти работает как есть. Подвох в том, что утверждение SAML возвращается OneLogin saml_assertion
а также verify_factor
конечные точки устанавливает трехминутный срок Subject
а также Conditions
поля.
Есть ли способ сделать то, что мы хотим, или мы пытаемся обойти основной принцип SAML?
1 ответ
Мы находимся в процессе официального добавления опции в наш официальный инструмент CLI для повторного использования учетных данных пользователя, аналогично тому, что вы описываете.
По сути, наш инструмент CLI имеет возможность повторно использовать пользователя / пароль в фоновом режиме, чтобы постоянно обновлять информацию о доступе в профиле пользователя, поэтому, пока пользователь предоставит учетные данные один раз, информация о доступе будет обновлена до истечения срока его действия.
Но, к сожалению, по крайней мере в настоящее время нет способа обойти часть MFA, если политика приложения требует MFA. Этот МИД понадобится для обновления учетных данных.
Если у вас есть MFA, вы всегда можете использовать API-интерфейсы OneLogin MFA для выпечки потока MFA в инструмент...
Проверьте это здесь: https://github.com/onelogin/onelogin-aws-cli-assume-role/pull/5
Принятый ответ здесь больше не соответствует действительности. Теперь можно аутентифицировать пользователя и проверять MFA один раз в начале сеанса, а затем обновлять сеанс ежечасно, не вводя дополнительные токены MFA.
Для этого вы должны использовать --loop
параметр инструмента CLI и имеет соответствующую политику приложений в OneLogin, которая включает параметр "Пропустить, если OTP получен в течение последних X минут".