Как мне написать сценарии MultiFactor Powershell для Exchange Online - PullRequest
0 голосов
/ 09 октября 2018

У меня есть скрипт powershell, предоставленный MS, и я отредактировал.Правда для формы MS предоставил скрипт с использованием старого кода.Поскольку у нас включен MFA, я больше не могу использовать Get-Credential для аутентификации, так как мы используем Modern Auth вместо Basic.Как я могу отредактировать код для поддержки MFA?Мы не используем Auzer MFA, мы используем Duo.

Старый код:

$adminCredential = Get-Credential

    Write-Output "Connecting to Exchange Online Remote Powershell Service"
    $ExoSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $adminCredential -Authentication Basic -AllowRedirection
    if ($null -ne $ExoSession) { 
        Import-PSSession $ExoSession -AllowClobber
    } else {
        Write-Output "  No EXO service set up for this account"
    }

    Write-Output "Connecting to EOP Powershell Service"
    $EopSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.compliance.protection.outlook.com/powershell-liveid/ -Credential $adminCredential -Authentication Basic -AllowRedirection
    if ($null -ne $EopSession) { 
        Import-PSSession $EopSession -AllowClobber
    } else {
        Write-Output "  No EOP service set up for this account"
    }

Новые команды должны быть Connect-IPPSSession вместо New-PSSession, но я должен как-то изменить Get-Credentialчтобы передать полномочия и МИД, я просто не знаю, как это сделать.

Ответы [ 3 ]

0 голосов
/ 10 октября 2018

Полное раскрытие, ни я, ни любые клиенты, которых я поддерживаю, не используют Duo.

При этом нет никаких документов от MS, касающихся PowerShell и MFA, использующих DUO в качестве источника для O365.

Согласно MS ...

Подключение к службам Office 365 с многофакторной аутентификацией (MFA) и PowerShell

Подключение к Exchange OnlinePowerShell с использованием многофакторной аутентификации

Нельзя использовать удаленный модуль PowerShell для Exchange Online для подключения к Exchange Online PowerShell и Центру безопасности и соответствия требованиям PowerShell в одном сеансе (окне).Вам необходимо использовать отдельные сеансы удаленного модуля PowerShell для Exchange Online.

Если вы хотите использовать многофакторную аутентификацию (MFA) для подключения к Exchange Online PowerShell, , вы не можете использовать инструкциипри подключении к Exchange Online PowerShell

https://docs.microsoft.com/en-us/powershell/exchange/exchange-online/connect-to-exchange-online-powershell/connect-to-exchange-online-powershell?view=exchange-ps

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection

для использования удаленного PowerShell для подключения к Exchange Online.

MFA требует установки удаленного модуля PowerShell Exchange Online и использования для подключения командлета Connect-EXOPSSession.

Connect-EXOPSSession -UserPrincipalName <UPN> [-ConnectionUri <ConnectionUri> -AzureADAuthorizationEndPointUri <AzureADUri>]

Настройка многофакторной аутентификации (MFA) и взаимодействие с конечным пользователем с Office 365 и PowerShell

См. Также, если вы этого еще не сделали.

Как мнеизменить формат имени пользователя, отправляемого в Duo?

0 голосов
/ 10 октября 2018

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

0 голосов
/ 10 октября 2018

Если вы хотите использовать аутентификацию OAuth, вам необходимо иметь токен доступа

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

Вот пример запроса API с использованием curl.Обратите внимание, что он включает в себя токен доступа:

curl -X POST -H "Authorization: Bearer ACCESS_TOKEN""https://api.digitalocean.com/v2/$OBJECT"

. Вы можете выполнить аутентификацию с помощью OAuth, перейдя по ссылке ниже:

Использование PowerShell для аутентификации на основе OAuth

...