Microsoft 安全与合规中心和 Microsoft 安全评分提供了一系列好的、优秀的和不相关的安全建议。有时它们看起来有点不相容……
考虑一下这些已经完成的情况:
- 为 Azure AD 特权角色启用 MFA
- 为(所有)用户启用 MFA
然后:为所有用户启用邮箱审核
使用 O365-InvestigationTooling /启用邮箱审核.ps1:
#This script will enable non-owner mailbox access auditing on every mailbox in your tenancy
#First, let's get us a cred!
$userCredential = Get-Credential
#This gets us connected to an Exchange remote powershell service
$ExoSession = New-PSSession -ConfigurationName Microsoft.Exchange `
-ConnectionUri https://outlook.office365.com/powershell-liveid/ `
-Credential $userCredential -Authentication Basic -AllowRedirection
Import-PSSession $ExoSession
#Enable global audit logging
Get-Mailbox -ResultSize Unlimited -Filter {RecipientTypeDetails -eq "UserMailbox" `
-or RecipientTypeDetails -eq "SharedMailbox" -or RecipientTypeDetails `
-eq "RoomMailbox" -or RecipientTypeDetails -eq "DiscoveryMailbox"} `
| Set-Mailbox -AuditEnabled $true -AuditLogAgeLimit 180 -AuditAdmin Update, `
MoveToDeletedItems, SoftDelete, HardDelete, SendAs, SendOnBehalf, Create, `
UpdateFolderPermission -AuditDelegate Update, SoftDelete, HardDelete, SendAs, `
Create, UpdateFolderPermissions, MoveToDeletedItems, SendOnBehalf `
-AuditOwner UpdateFolderPermission, MailboxLogin, Create, `
SoftDelete, HardDelete, Update, MoveToDeletedItems
#Double-Check It!
Get-Mailbox -ResultSize Unlimited `
| Select Name, AuditEnabled, AuditLogAgeLimit `
| Out-Gridview
但是,New-PSSession
使用全局管理员帐户失败:
New-PSSession : [outlook.office365.com] Connecting to remote server
outlook.office365.com failed with the following error message :
Access is denied.
我认为这是因为Get-Credential
或New-PSSession
不支持 MFA。身份验证机制枚举好像没有这样的身份验证:改为Basic
也Default
没用。我错了吗?
还有其他方法可以为所有用户启用邮箱访问审核/检查其状态吗?
答案1
我猜对了,罪魁祸首是 MFA。我暂时禁用 MFA对于全局管理员帐户,脚本运行良好。毕竟,您只需执行一次,或者偶尔只需为新邮箱更新它。禁用和启用 MFA 会立即发生,并且为了获得最大(即锡纸帽)安全性,您甚至可以在运行脚本之前更改密码。
更新:应用程序密码也有效!考虑到你可以获得的信息和可以更改的设置,我不确定这是否真的是微软的安全选择,完全跳过 MFA。
答案2
旧帖子,但要使用支持 MFA 和现代身份验证的 powershell,您需要使用 Microsoft Exchange Online Powershell 模块 - 可以从 Exchange Online 管理中心的“混合”部分下载