Подключитесь к Azure AD из Powershell без запроса - PullRequest
0 голосов
/ 25 октября 2019

У нас есть учетная запись Azure AD с включенной многофакторной аутентификацией, и нам интересно, есть ли способ подключиться к ней без приглашения, то есть без MFA, через Powershell.

Мы попробовали Connect-AzureAD -Credentials однако это не происходит при настройке MFA:

AADSTS50076: из-за изменения конфигурации, сделанного вашим администратором, или из-за того, что вы переехали в новое местоположение, вы должны использовать многофакторную аутентификацию дляaccess ...

Если есть какой-либо способ настроить MFA и подключиться через Powershell, это было бы очень полезно.

Ответы [ 2 ]

2 голосов
/ 25 октября 2019

Нет. Если требуется MFA, вы не можете входить в систему программно как пользователь.

В этом случае требуется интерактивная аутентификация.

Если вы измените свои политики, чтобы разрешить аутентификацию с этого компьютера без MFA, тогдабудет работать.

Вы также можете использовать для аутентификации субъект-службу вместо пользователя.

0 голосов
/ 25 октября 2019

Есть немного сложный обходной путь.

Вы можете напрямую подключиться к Azure AD с токеном доступа:

Connect-AzureAD
       [-AzureEnvironmentName <EnvironmentName>]
       [-TenantId <String>]
       -AadAccessToken <String>
       [-MsAccessToken <String>]
       -AccountId <String>
       [-LogLevel <LogLevel>]
       [-LogFilePath <String>]
       [-InformationAction <ActionPreference>]
       [-InformationVariable <String>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

И вы можете получить токен доступа с токеном обновления без запроса.

Чтобы просто получить токен обновления, проще всего использовать Fiddler. Откройте Fiddler и запустите Connect-AzureAD. вы сможете найти токен обновления:

enter image description here

Затем вы можете получить новый токен доступа и использовать его для подключения к AAD следующим образом:

# The refresh token
$refresh_token="AQABAAAAAACQN9QBRU3jT6bcBQLZNUj7NLUSh_LtiE0dRWb-Vqb9RjUoNjK67G0DlSF65M_w6o1fAvQ******16Z4J0X-MEZSAA"

# Tenant id and account id
$tenant_id = "hanxia.onmicrosoft.com"
$account = "jack@hanxia.onmicrosoft.com"

# 1b730954-1685-4b74-9bfd-dac224a7b894 is a public client from Microsoft 
$clientId = "1b730954-1685-4b74-9bfd-dac224a7b894"
$uri = "https://login.microsoftonline.com/${tenant_id}/oauth2/token"
$body = @{grant_type='refresh_token';resource='https://graph.windows.net';client_id=$clientId;refresh_token=$refresh_token}
$result = Invoke-RestMethod -Method Post -Uri $uri -Body $body
$accessToken = $result.access_token

# Connect to AAD
Connect-AzureAD -TenantId $tenant_id -AadAccessToken $accessToken -AccountId $account

Результат

enter image description here

Примечание

Обновление содержит информацию о конфиденциальности. Вы должны держать это в безопасности.

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