Azure AD MFA без браузера?

Об этом уже спрашивали, но в другом контексте. Мне нужно иметь возможность проходить аутентификацию в Azure AD (Entra) через MFA с терминала, где нет возможности загрузить браузер. Это в Linux, и я использую библиотеку Python msal. Сейчас я могу аутентифицироваться только по имени пользователя и паролю. Я хватался за соломинку, например, за использование селена и т. д. Есть у кого-нибудь идеи?

1 ответ

В такой библиотеке, как MSAL, в среде, которая не поддерживает веб-браузер (например, терминал на автономном сервере Linux), вы не сможете использовать стандартные интерактивные потоки OAuth, которые полагаются на перенаправление на основе браузера.

Для инструментов на базе терминала без браузера я обычно рекомендую использовать «Поток кода устройства».

  1. Приложение запрашивает у Azure AD код устройства.
  2. Azure AD возвращает код устройства, код пользователя и URL-адрес проверки.
  3. Пользователю предлагается перейти к URL-адресу подтверждения на отдельном устройстве (например, на телефоне или настольном компьютере) и ввести код пользователя. После этого они завершат стандартный интерактивный процесс MFA на этом отдельном устройстве.
  4. Тем временем приложение периодически опрашивает Azure AD с кодом устройства, чтобы проверить, завершил ли пользователь процесс MFA.
  5. Как только пользователь завершает MFA, Azure AD возвращает приложению токен доступа.

https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code

https://github.com/Azure-Samples/ms-identity-python-devicecodeflow

Другие вопросы по тегам