2015-02-28 4 views
3

API веб-служб Amazon предоставляет конечную точку AssumeRoleWithSAML, чтобы позволить пользователю обмениваться утверждением SAML для набора временных учетных данных API от службы маркеров безопасности AWS.Что такое хороший способ получить учетные данные STS с помощью федеративного входа SAML через Okta для использования в локальных инструментах командной строки?

Поставщик SAML, такой как Okta, будет generate a SAML assertion after a user logs into their web UI, а Okta аутентифицирует пользователя на бэкэнде этого пользователя (например, LDAP предприятия).

Как правило, это утверждение затем передается из браузера пользователей на другую веб-службу, которая принимает утверждения SAML, полагающуюся сторону, для аутентификации пользователя этой третьей стороне (например, при использовании логического входа Okta для включения пользователя в войдите в веб-консоль AWS)

Каков наилучший способ включить федеративный пользователь для аутентификации с помощью Okta, получить утверждение, передать это утверждение в STS и вернуть набор временных учетных данных AWS API, которые затем могли бы использовать либо с инструментами командной строки AWS, либо с помощью локального сценария boto python?

  • Запустить веб-браузер из инструмента python с помощью модуля Python webbrowser?
  • Что такое жидкий способ получить подтверждение от веб-браузера в форме, используемой инструментом командной строки?
  • Создайте временный туннель ngrok на локально действующий временный веб-сервер (например, экземпляр flask или bottle), чтобы Okta перенаправлял веб-браузер пользователя на сайт, чтобы донести утверждение до некоторого локального кода?
  • Как обычно можно объединить мир интерактивной веб-страницы и инструментов локальной командной строки?

ответ

0

Я еще не пробовал, но вы можете посмотреть, как это делает проект trueaccord/aws-saml-broker на GitHub. Они построили небольшой webapp, который заставляет API STS AssumeRole API от имени пользователя Okta-federated и возвращает учетные данные на экране.

Интересно, что они не используют вызов AssumeRoleWithSAML; вместо этого сам webapp является конечной точкой SAML. Возможно, вы могли бы обновить приложение, чтобы использовать этот вызов и/или предоставить лучший интерфейс для доставки учетных данных пользователю, кроме вырезания и вставки.

-1

Возможно, вас заинтересует этот разговор на BSidesSF. https://bsidessf2015.sched.org/event/5ea95560183883cbd6d40c7d1d1d8922#.VSvuRxPF9v0

Я работаю над демоном и, надеюсь, Mac-приложением, которое будет использовать IdP по вашему выбору, чтобы вывести краткосрочные учетные данные. Демон и приложение могут быть настроены на автоматическое обновление ваших учетных данных.

-Поль

+0

Было бы очень хорошо, если бы вы могли бы разместить ссылку на либо слайды или приложение ... – kgutwin

+0

я нашел [разговор Павла здесь] (https://www.youtube.com/watch ? v = lp0IfWH4R4E & t = 10m0s) на продукт, который он упоминает, Aeris. В его разговоре говорится, что он будет доступен в этом месяце (июль 2015 года). –