Azure AD API для единого входа на основе командной строки SAML2 (для федеративного входа в AWS) - PullRequest
0 голосов
/ 02 декабря 2018

Я пытаюсь написать программу командной строки (CLI in Go), которая должна работать примерно так:

  1. Пользователь отправляет свои учетные данные Azure AD для имени пользователя и пароля в CLI.
  2. CLI использует учетные данные для аутентификации в Azure, которая возвращает токен или другую задачу для конечного пользователя (например, MFA).
  3. Если возвращается другая проблема, CLI ожидает ввода от пользователя(например, код MFA) и отправляет входные данные на вход MFA Azure AD.В случае успеха Azure AD возвращает токен.
  4. CLI отправляет возвращенный запрос токена и SAML2 конечной точке SAML Azure AD и возвращает из Azure AD ответ SAML2.
  5. Затем CLI передаетSAML2 отвечает конечной точке SAMS AWS и возвращает временные учетные данные AWS IAM.

Спасибо,

Йосси С.

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Утилита CLI aws-azure-login выполняет вход в систему, создавая автономный браузер для доступа к странице входа в Azure AD.Вы должны изучить их исходный код.

https://github.com/dtjohnson/aws-azure-login

0 голосов
/ 02 декабря 2018

Не буду притворяться, что я супер-эксперт в этой области, но вот что я знаю:
Сценарий, который вы описываете , использовал для поддержки Azure AD C # sdk, но это былоудален.Azure AD действительно хочет, чтобы вы проходили аутентификацию либо с помощью «обычного» потока входа в систему на основе браузера, либо с помощью так называемого «кода устройства» (попробуйте Azure Cli локально, чтобы увидеть, как это работает).В зависимости от того, как настроен ваш каталог, Azure AD может передать ваш запрос нисходящей службе аутентификации (например, если каталог настроен с аутентификацией ADFS / saml), а не обрабатывать его сам.Путем «жесткого кодирования» логики имени пользователя и пароля в вашем клиенте вы существенно ограничиваете свой инструмент для работы только с каталогами Azure AD, которые настроены таким образом, что аутентификация является локальной и не требует пересылки.

Все, что сказало: Построение необходимых вызовов http не является супер-продвинутым.Я закончил тем, что использовал модуль Azure Powershell и настроил прокси-сервер http локально, чтобы я мог проверять аутентификационные вызовы, и это довольно просто.Здесь также есть дополнительная информация по ссылкам, приведенным здесь: Имя пользователя / пароль ADAL в стандарте .net 1.4

...