网站搜索

可见性提示:谁有权访问邮箱?


大多数员工人数超过 10 或 20 人且在本地运行 Exchange Server 或在云中运行 Office 365 的组织都拥有在某种程度上共享的邮箱。这些场景可能包括以下内容:

  • 通常处理自己的任务的主管或经理,但将其联系人、日历或电子邮件的访问权限委托给行政或行政助理,以便他或她可以访问经理收件箱中的项目。
  • 部门的共享邮箱,例如“客户服务”或“会计”,该部门的所有员工共享邮箱的访问权限以接收传入邮件,代表部门回复邮件(不使用自己的帐户) ,并管理其电子事务。

在某些情况下,您可能很快需要一个邮箱列表,以允许邮箱所有者以外的人访问其中的数据。最佳实践是一致地审核此类访问,无论是每季度、半年甚至每月(对于非常敏感的安装)。进一步的最佳实践是每次通过您自己的安全部门授予此类权限时进行记录;然而,在现实世界中,这种在授予之前进行手动跟踪的方法不会捕获通过像在 Outlook 中右键单击日历并选择与同事共享日历这样简单的操作自行委派访问权限的用户。以自动化方式捕获这一点更加困难。

使用 PowerShell 脚本

让我们首先处理最简单的场景。要查看与其他用户共享的邮箱,您可以使用 PowerShell 的功能来捕获这些共享的邮箱,以便您知道您正在使用什么。

Get-Mailbox –RecipientTypeDetails ‘SharedMailbox’ | Get-MailboxPermission | where {$_.user.tostring() -ne "NT AUTHORITYSELF" -and $_.IsInherited -eq $false} | Format-Table Identity, User –AutoSize

此命令将提供一个简单的表格,显示有权访问共享邮箱的身份和用户。这是一个很好的起点。

要进一步了解谁有权访问邮箱中的数据,您需要开始与 Exchange Web Services 进行交互,该服务具有一个 API,可以比当前 Exchange 的 PowerShell 模块公开更多信息。幸运的是,Microsoft Exchange Server MVP Glen Scales 在他的博客上发布了一个示例脚本,我们可以使用该脚本来查询哪些用户有权访问用户邮箱中的特定文件夹。 Glen 在他的博客上建议,这份报告(以看起来不错的 HTML 形式出现)可以通过电子邮件发送给用户,以便快速浏览和验证,大致意思是“是的,我认识这些人,我知道他们有一个有效的报告”。访问我的邮箱的原因。”

$rptCollection = @()
$delegates = $service.getdelegates($MailboxName,$true)
foreach($Delegate in $delegates.DelegateUserResponses){
    $rptObj = "" | select EmailAddress,Inbox,Calendar,Contacts,Tasks,Notes,Journal,MeetingMessages,ViewPrivateItems
    $rptObj.EmailAddress = $Delegate.DelegateUser.UserId.PrimarySmtpAddress
    $rptObj.Inbox = $Delegate.DelegateUser.Permissions.InboxFolderPermissionLevel
    $rptObj.Calendar = $Delegate.DelegateUser.Permissions.CalendarFolderPermissionLevel  
    $rptObj.Contacts = $Delegate.DelegateUser.Permissions.ContactsFolderPermissionLevel  
    $rptObj.Tasks = $Delegate.DelegateUser.Permissions.TasksFolderPermissionLevel  
    $rptObj.Notes = $Delegate.DelegateUser.Permissions.NotesFolderPermissionLevel  
    $rptObj.Journal = $Delegate.DelegateUser.Permissions.JournalFolderPermissionLevel           $rptObj.ViewPrivateItems = $Delegate.DelegateUser.ViewPrivateItems  
    $rptObj.MeetingMessages = $Delegate.DelegateUser.ReceiveCopiesOfMeetingMessages  
    $rptCollection += $rptObj  
}
$tableStyle = @"
<style>
BODY{background-color:white;}
TABLE{border-width: 1px;
  border-style: solid;
  border-color: black;
  border-collapse: collapse;
}
TH{border-width: 1px;
  padding: 10px;
  border-style: solid;
  border-color: black;
  background-color:#66CCCC
}
TD{border-width: 1px;
  padding: 2px;
  border-style: solid;
  border-color: black;
  background-color:white
}
</style>
"@
$body = @"
<p style="font-size:25px;family:calibri;color:#ff9100">
$TableHeader
</p>
"@
$rptCollection | ConvertTo-HTML -head $tableStyle | Out-File c:delgateReport.html

部署专业工具

您可以部署专业工具,而不是使用 PowerShell 脚本。在下面的屏幕截图中(在本例中为 Netwrix Auditor for Exchange),我们看到对邮箱权限和委派进行的更改:

使用此工具,您可以查看谁访问了哪个邮箱、访问发生的时间和从哪个工作站以及用户查看、编辑或删除了哪些项目。

这也有助于向审核员表明您正在采取措施保护您的网络邮箱免受未经授权的访问。

相关文章