如何为 Exchange Online 编写 MultiFactor Powershell 脚本
How do I write MultiFactor Powershell scripts for Exchange Online
我有一个 MS 提供的 powershell 脚本,我已经编辑了。一如既往,MS 提供了一个使用旧代码的脚本。由于我们启用了 MFA,我不能再使用 Get-Credential 进行身份验证,因为我们使用现代身份验证而不是基本身份验证。如何编辑代码以支持 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 以传递凭据和 MFA 我只是不知道如何执行此操作。
如果要使用OAuth认证,需要有Access Token
一旦应用程序拥有访问令牌,它可以使用令牌通过API访问用户的帐户,限制访问范围,直到令牌过期或被撤销。
这里是一个 API 请求的例子,使用了 curl。请注意,它包括访问令牌:
curl -X POST -H "Authorization: Bearer ACCESS_TOKEN""https://api.digitalocean.com/v2/$OBJECT"
您可以参考下面的 OAuth 身份验证 link:
完全公开,我和我支持的任何客户都不使用 Duo。
话虽如此,MS 没有关于使用 DUO 作为 O365 源的 PowerShell 和 MFA 的文档。
根据女士...
Connect to Office 365 services with multifactor authentication (MFA) and PowerShell
Connect to Exchange Online PowerShell using multi-factor authentication
您不能使用 Exchange Online 远程 PowerShell 模块在同一会话中连接到 Exchange Online PowerShell 和安全与合规中心 PowerShell (window)。您需要使用 Exchange Online 远程 PowerShell 模块的单独会话。
如果您想使用多重身份验证 (MFA) 连接到 Exchange Online PowerShell,您不能使用连接到 Exchange Online PowerShell 中的说明
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
使用远程 PowerShell 连接到 Exchange Online。
MFA 要求您安装 Exchange Online 远程 PowerShell 模块,并使用 Connect-EXOPSSession cmdlet 进行连接。
Connect-EXOPSSession -UserPrincipalName <UPN> [-ConnectionUri <ConnectionUri> -AzureADAuthorizationEndPointUri <AzureADUri>]
Multi-Factor Authentication (MFA) Setup and End-User Experience with Office 365 and PowerShell
另请参阅,如果您还没有的话。
阅读答案后,我意识到我的问题结构不够详细,无法得到我需要的答案。我将保留问题并将其中一个答案标记为答案,因为它确实回答了我提出的问题,而不是我希望了解的内容。
Connect-ExchangeOnline
支持2FA登录。你可以 运行 它没有任何参数。
我有一个 MS 提供的 powershell 脚本,我已经编辑了。一如既往,MS 提供了一个使用旧代码的脚本。由于我们启用了 MFA,我不能再使用 Get-Credential 进行身份验证,因为我们使用现代身份验证而不是基本身份验证。如何编辑代码以支持 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 以传递凭据和 MFA 我只是不知道如何执行此操作。
如果要使用OAuth认证,需要有Access Token
一旦应用程序拥有访问令牌,它可以使用令牌通过API访问用户的帐户,限制访问范围,直到令牌过期或被撤销。
这里是一个 API 请求的例子,使用了 curl。请注意,它包括访问令牌:
curl -X POST -H "Authorization: Bearer ACCESS_TOKEN""https://api.digitalocean.com/v2/$OBJECT"
您可以参考下面的 OAuth 身份验证 link:
完全公开,我和我支持的任何客户都不使用 Duo。
话虽如此,MS 没有关于使用 DUO 作为 O365 源的 PowerShell 和 MFA 的文档。
根据女士...
Connect to Office 365 services with multifactor authentication (MFA) and PowerShell
Connect to Exchange Online PowerShell using multi-factor authentication
您不能使用 Exchange Online 远程 PowerShell 模块在同一会话中连接到 Exchange Online PowerShell 和安全与合规中心 PowerShell (window)。您需要使用 Exchange Online 远程 PowerShell 模块的单独会话。
如果您想使用多重身份验证 (MFA) 连接到 Exchange Online PowerShell,您不能使用连接到 Exchange Online PowerShell 中的说明
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
使用远程 PowerShell 连接到 Exchange Online。
MFA 要求您安装 Exchange Online 远程 PowerShell 模块,并使用 Connect-EXOPSSession cmdlet 进行连接。
Connect-EXOPSSession -UserPrincipalName <UPN> [-ConnectionUri <ConnectionUri> -AzureADAuthorizationEndPointUri <AzureADUri>]
Multi-Factor Authentication (MFA) Setup and End-User Experience with Office 365 and PowerShell
另请参阅,如果您还没有的话。
阅读答案后,我意识到我的问题结构不够详细,无法得到我需要的答案。我将保留问题并将其中一个答案标记为答案,因为它确实回答了我提出的问题,而不是我希望了解的内容。
Connect-ExchangeOnline
支持2FA登录。你可以 运行 它没有任何参数。