Вызов командлетов connect в скрипте - PullRequest
0 голосов
/ 25 июня 2019

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

Что действительно происходит, когда я вызываю все по одному и тому же сценарию: Connect-AzAccount Connect-AzureAD Connect-AzureRMAccount

Сначала я вызываю Get-Credential и сохраняю его в переменной. Затем я использую эти учетные данные для заполнения -Credential в Connect-AzAccount

Затем из-за многофакторной аутентификации мне нужно позвонить в Connect-AzureAD, который выдает всплывающее окно, позволяющее пользователю вводить электронную почту, пароль и код из текста MFA на телефон.

Позже в сценарии есть некоторые командлеты, которые есть в версии RM, и поэтому я вызываю Connect-AzureRMAccount с предыдущими учетными данными сверху.

$credentials = Get-Credential
$azureCredentials = New-Object System.Management.Automation.PSCredential ($credentials.UserName, $credentials.Password)   

Connect-AzAccount -Credential $azureCredentials -Tenant $tenantID -SubscriptionId $subscriptionID

Connect-AzureAD -Tenant $tenantID

Connect-AzureRMAccount -Credential $azureCredentials -Tenant $tenantID -SubscriptionId $subscriptionID 

Что на самом деле происходит с точки зрения аутентификации во время всего этого скрипта, где вызываются несколько разных командлетов Connect.

По какой-то причине существует определенный командлет $AppRegistration = New-AzureADApplication -DisplayName $appName -HomePage $AppURI -IdentifierUris $AppURI -ReplyUrls $AppURI -PasswordCredentials $psadCredential

где я получаю сообщение об ошибке в Powershell, в котором говорится, что мне нужно снова вызвать Connect-AzureAD, хотя он уже был вызван один раз во время сценария. Это время с МИД?

Как мне избежать необходимости заставлять пользователя входить в систему несколько раз после запуска сценария?

1 Ответ

0 голосов
/ 26 июня 2019

Я не думаю, что это правильный вариант, если вы хотите избежать MFA, обходной путь состоит в том, чтобы создать субъект-службу (приложение AD), предоставить ему разрешения, а затем войти в систему с субъектом-службой без MFA. .

Вы можете выполнить следующие шаги.

1. Создайте приложение Azure Active Directory , затем Загрузите сертификат и Получите значения для входа в систему .

2. Перейдите к Azure Active Directory на портале -> Roles and administrators -> нажмите Application administrator -> Add assignment -> поиск по имени приложения AD (имя участника службы) -> выберите его -> Select.

Примечание : в вашем случае вы хотите использовать команду New-AzureADApplication, поэтому вам нужно назначить роль каталога Application administrator вашему приложению AD (субъекту службы), если вы хотите это сделать для других вещей требуются дополнительные разрешения, вам может понадобиться роль, подобная Global administrator, это зависит от вас.

3. Затем вы можете использовать приведенную ниже команду для входа в систему с помощью модуля Az и AzureAD.

Connect-AzAccount -CertificateThumbprint "F1D9FE13A8FBxxxx1C8B07D1666" -ApplicationId "aa60b5df-xxxxxx8ae8e0cc2e4" -Tenant "bb58915cxxxxxxb97ed6c65" -ServicePrincipal

Connect-AzureAD -CertificateThumbprint "F1D9FE13A8FBxxxx1C8B07D1666" -ApplicationId "aa60b5df-xxxxxx8ae8e0cc2e4" -Tenant "bb58915cxxxxxxb97ed6c65" 

New-AzureADApplication -DisplayName "newapp"  -IdentifierUris "http://mynewapp11.contoso.com"

enter image description here enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...