Есть ли способ переключаться между контекстами аутентификации в модуле PowerShell AzureAD так же, как в модуле Az?

Я работаю над сценарием, который включает переключение между двумя разными учетными записями пользователей в двух разных клиентах Azure. С модулем Az powershell я могу устанавливать различные контексты аутентификации, используя:

Connect-AzAccount -ContextName "FirstContext" # interactive auth prompt 1
Connect-AzAccount -ContextName "SecondContext" # interactive auth prompt 2

затем переходите между ними без каких-либо дополнительных интерактивных подсказок, например:

Select-AzContext -Name "FirstContext"
# do stuff within the first context
Select-AzContext -Name "SecondContext"
# do stuff within the second context

Мне нужно сделать что-то подобное (переключаться между контекстами аутентификации в одном и том же скрипте), используя командлеты в модуле AzureAD powershell ... Кто-нибудь знает, что это может быть достигнуто? Оба контекста аутентификации требуют интерактивного MFA, который Get-Credential, похоже, не поддерживает.

Спасибо!


person Benjin    schedule 14.06.2019    source источник
comment
Вы хотите обойти аутентификацию MFA или переключить контекст аутентификации? Как вы планируете переключаться между контекстами, не называя их имени? Не могли бы вы сохранить результат Connect-AzAccount, например $contextOne = Connect-AzAccount -ContextName "FirstContext"? есть ли причина, по которой вы избегаете исправления учетных записей, чтобы следовать наименьшим привилегиям?   -  person lloyd    schedule 14.06.2019
comment
@lloyd Я хочу переключать контексты аутентификации на лету для модуля AzureAD. Я уже могу использовать модуль Az, но это разные модули, поэтому я не могу взять контексты аутентификации из Az и передать их AzureAD. Я счастлив предварительно загружать аутентификацию MFA столько, сколько необходимо (один раз для каждого модуля, для каждого контекста, то есть в 4 раза), но я стараюсь избегать повторного использования MFA в том же окне PS, когда я хочу переключаться между ними.   -  person Benjin    schedule 14.06.2019


Ответы (1)


В настоящее время модуль Azure AD PowerShell не поддерживает выбор контекста.

Если вы просто хотите снова избежать интерактивной MFA, вы можете войти в систему с субъектом службы, после того, как сделаете что-то, что хотите, отключите его и смените другого участника службы.

Connect-AzureAD -TenantId "bb58915c-xxxxx5b97ed6c65" -ApplicationId "ec614bcd-d129-4ca4xxxxx19b07" -CertificateThumbprint "F1D9FE13xxxxx8B07D1666"

#do something you want

Disconnect-AzureAD

Кроме того, это отзыв об Azure AD, вы можете опубликовать его как идея.

person Joy Wang    schedule 17.06.2019
comment
Не совсем то, к чему я стремлюсь, поскольку то, что я хочу сделать, должно выполняться в контексте моего пользователя, а не в качестве субъекта-службы. - person Benjin; 18.06.2019
comment
@Benjin Я ответил на ваш вопрос: модуль Azure AD PowerShell не поддерживает выбор контекста. Использование субъекта-службы - это мой обходной путь, я думаю, что если вы предоставите разрешения субъектам-службам, они смогут делать большинство вещей вместо вашей учетной записи. - person Joy Wang; 19.06.2019
comment
Я также могу подтвердить, что этот сценарий не поддерживается. Спасибо за ответ, Джой! - person Frank Hu MSFT; 20.06.2019
comment
@Benjin MSFT также может подтвердить, что этот сценарий не поддерживается. Не могли бы вы щелкнуть по отметке, чтобы принять его в качестве ответа? - person Joy Wang; 21.06.2019