[玩转系统] 阻止用户访问 Microsoft 365 帐户
作者:精品下载站 日期:2024-12-14 04:02:31 浏览:15 分类:玩电脑
阻止用户访问 Microsoft 365 帐户
有多种技术可以阻止人们相互联系
更新于 2024 年 2 月 20 日
最近一篇关于使用 PowerShell 控制 Entra ID 条件访问策略的文章让我开始思考用于阻止用户访问 Office 365 的技术。四年前,我在 Petri.com 的一篇文章中考虑了受法国法律启发的问题允许人们在周末断开连接。在法国以外的地方,随着 Covid-19 大流行迫使许多人在家工作,在个人时间和工作时间之间保留空间的必要性变得更加明显。有些人工作得更多,有些人工作得更少,个人时间和工作时间之间的界限变得模糊。现在,时代的进步和技术的发展相结合,使重新审视这个问题变得合理。
更新:Microsoft 已针对所有租户中的密码更改或帐户冻结等关键事件实施了持续访问评估 (CAE)。 CAE 的最终效果是剥夺用户对帐户的访问权限的速度更快(几乎立即)。
暂时或永久停止电子邮件连接
禁用用户服务的问题不仅仅是阻止人们在周末或度假时工作。当人们离开公司时它也适用。多年来,不同的技术不断发展,最初是用于电子邮件连接,因为这是问题首先出现的地方。
由于 Exchange Online 支持一组丰富的邮箱连接协议,因此您可以通过运行 Set-CASMailbox cmdlet 禁用各个协议。在此示例中,我们为 Exchange ActiveSync (EAS) 和 Outlook Mobile 使用的 Microsoft 同步技术禁用邮箱的移动连接:
Set-CASMailbox -Identity [email protected] -ActiveSyncEnabled:$False
Set-CASMailbox -Identity [email protected] -OutlookMobileEnabled:$False
为什么要禁用这两个协议? Outlook Mobile 使用 Microsoft 同步技术来启用许多高级功能,例如委托对邮箱的访问,但其他客户端(例如 iOS 和 Android 操作系统中包含的邮件应用程序)使用 EAS 与 Exchange Online 进行基本电子邮件连接。如果您不禁用两者,则会造成用户仍然可以使用不同的应用程序连接到其邮箱的情况。事实上,为了完整起见,您还应该禁用 IMAP4 和 POP3 协议,以阻止移动设备连接到邮箱的任何机会。
专注于禁用协议的缺点是仍然可能发生一些信息泄漏。以 Outlook 移动版为例。您可以禁用 Microsoft 同步技术来停止客户端发送消息和将消息下载到设备,但 iOS 和 Android 都使用服务来通知用户新消息的到达。通知包含有关新消息的片段,以便用户决定是否需要阅读完整消息。禁用同步协议后,这些通知会继续到达。
实际上,如果您真的想控制移动设备,则需要部署 Intune 等移动设备管理 (MDM) 解决方案,该解决方案允许您在必要时远程擦除设备上的公司数据。
停止访问 Office 365
电子邮件并不是唯一占用周末时间的应用程序。如果人们允许,Teams、Planner、Yammer、SharePoint Online 和 OneDrive for Business 都会消耗大量时间。阻止访问的经典方法是阻止某人的帐户。这可以通过 Microsoft 365 管理中心选择帐户并选择阻止登录来完成(图 1)。
阻止帐户会将 AccountEnabled 属性设置为 False。当帐户被禁用时,用户无法登录其帐户:
强制从应用程序注销
阻止帐户登录还会将该帐户的 RefreshTokensValidFromDateTime 属性设置为操作发生的日期和时间。其效果是使颁发给用户应用程序的刷新令牌和颁发给浏览器中会话 cookie 的令牌无效,并强制用户重新进行身份验证才能继续使用应用程序。 Microsoft 365 管理中心包含一个用于将用户从所有会话中注销的选项,因此您可以在不阻止帐户的情况下执行此操作。
您还可以通过运行 Revoke-MgUserSignInSession cmdlet 强制使用 PowerShell 注销帐户:
$RevokeStatus = Revoke-MgUserSignInSession -UserId $User.Id
重置帐户登录将 RefreshTokensValidFromDateTime 设置为当前日期和时间,并将 AccountEnabled 设置为 True。用户现在可以登录。发生这种情况时,浏览器和应用程序会收到新的有效令牌。用户最多可能需要 15 分钟才能登录所有应用程序。
使用 PowerShell 阻止帐户
Update-MgUser cmdlet 会阻止对用户帐户的访问:
Update-MgUser -UserId '[email protected]' -AccountEnabled:$False
建议的方法是运行 Update-MgUser 来阻止帐户,然后运行 Revoke-MgUserSignInSession 以确保通过强制注销所有应用程序来阻止帐户。
实施周末区块
回到最初的问题,即如何出于某种原因断开人们与 Microsoft 365 的连接。假设我们只希望特定类别的用户发生这种情况,例如在特定国家/地区工作的用户。如果这些人是某个组的成员,我们可以使用该组来驱动断开连接过程。在此示例中,通讯组列表定义了要断开连接的帐户:
[Array]$Accounts = Get-DistributionGroupMember -Identity "BlockWeekend" | Select WindowsLiveID, ExternalDirectoryObjectId
ForEach ($Account in $Accounts) {
Write-Host "Turning Off Office 365 Access for" $Account.WindowsLiveID
Update-MgUser -UserId $Account.ExternalDirectoryObjectId -AccountEnabled:$False
$RevokeStatus = Revoke-MgUserSignInSession -UserId $Account.ExternalDirectoryObjectId }
动态通讯组列表可能是更好的选择,因为成员资格由国家或城市等属性驱动。要获取动态通讯组列表的用户集,我们使用列表的收件人过滤器来查找成员:
$AccountFilter = (Get-DynamicDistributionGroup -Identity "French Country Users").RecipientFilter
[Array]$Accounts = Get-Recipient -RecipientPreviewFilter $AccountFilter | Select-Object WindowsLiveID, ExternalDirectoryObjectId
当然,如果您愿意,可以使用 Get-MgGroupMember cmdlet 来获取组成员的详细信息。例如:
[array]$GroupId = (Get-MgGroup Filter "DisplayName eq 'BlockWeekend'").Id
[array]$GroupMembers = Get-MgGroupMember -GroupId $GroupId | Select-Object additionalProperties
$GroupMembers.displayName
此语法适用于通讯组列表、安全组、Microsoft 365 组和动态 Microsoft 365 组。它不适用于动态通讯组列表,因为 Entra ID 中不存在这些对象
断开用户连接的任务很简单。每个周五晚上,我们都会运行 PowerShell 脚本来禁用访问,并在周一早上运行另一个脚本来反转该过程。最大的缺点是 Teams 处理被阻止的帐户以将其从团队名册中删除的方式(不影响组成员身份)。如果您可以忍受这个问题,而 Microsoft 正在考虑如何改善这种情况,那么短期阻止帐户可能对您的组织有用。
使用条件访问策略
条件访问策略在用户成功进行身份验证后运行,以确定他们是否可以连接到所请求的资源。组成员身份是受支持的条件之一,这意味着可以轻松创建策略来阻止组访问应用程序。因为我们要阻止周末访问,所以我们可以添加另一个条件,表示如果用户在公司位置,则可以进行访问,但如果他们在家里或其他任何地方则不行。
图 3 显示了此类政策的概要。如果在“阻止的周末通讯组”列表中指定的任何人(您还可以使用安全组或 Microsoft 365 组)尝试访问 Office 365 应用程序,他们将被阻止:
当用户尝试访问应用程序被条件访问策略阻止时,他们会被告知登录已成功(身份验证已成功),但他们无权访问该资源:
如果它们已连接到应用程序并且该应用程序尝试更新其访问令牌,则条件访问策略将阻止令牌的颁发。图 5 显示了在 Teams 中发生这种情况时用户看到的内容(该应用程序非常有礼貌!):
使用 PowerShell 控制条件访问策略
条件访问策略允许组织对用户对应用程序的访问权限进行精细控制。在我们的场景中,我们希望允许在一周内免费访问。我们可以在工作周期间禁用条件访问策略,并仅在周末启用它。通过在 Entra 管理中心或使用 PowerShell 编辑策略即可轻松完成此操作。例如,启用该策略的方法如下:
$Policy = Get-MgIdentityConditionalAccessPolicy -Filter "displayName eq 'Block Weekend Access'"
Update-MgIdentityConditionalAccessPolicy -ConditionalAccessPolicyId $Policy.Id -State 'Enabled'
要在周末后禁用该策略,请运行:
Update-MgIdentityConditionalAccessPolicy -ConditionalAccessPolicyId $Policy.Id -State 'Disabled'
更改条件访问策略条件
但因为我们想要说明通过 PowerShell 使用条件访问策略的可能性,所以我们假设该策略始终处于活动状态,因为它在一周内用于限制某些用户(由组标识)对某些位置的访问。周末,我们需要与另一个小组更新策略。
被条件访问策略阻止的用户被定义为策略条件。要了解哪些用户受到策略的影响,我们可以检查其条件。在这里我们看到策略中包含一个组:
((Get-MgIdentityConditionalAccessPolicy -ConditionalAccessPolicyId $PolicyId).Conditions).Users | Format-List
IncludeUsers : {}
ExcludeUsers : {}
IncludeGroups : {468a9356-cf88-4189-bf85-40b096e3c37f}
ExcludeGroups : {}
IncludeRoles : {}
ExcludeRoles : {}
我们知道这是一个组而不是单个用户,因为它列在 IncludeGroups 条件中。该组由其唯一标识符(GUID)引用。要找出列出的组,请运行 Get-MgGroup cmdlet:
Get-MgGroup -GroupId 468a9356-cf88-4189-bf85-40b096e3c37f
DisplayName Id MailNickname Description GroupTypes
----------- -- ------------ ----------- ----------
Users Blocked for Weekend Access 468a9356-cf88-4189-bf85-40b096e3c37f BlockWeekend {}
要在策略中将一个组切换为另一个组,我们需要创建一个哈希表,指定要包含在策略中的组的组标识符,然后调用 Update-MgConditionalAccessPolicy cmdlet 进行更改。
以下是更新条件访问策略的代码示例。您可以看到不同组的 GUID 已写入条件集中:
# Update the policy with a new group
$UpdateSettings = @{
Conditions = @{
users = @{
includeGroups = @(
"5c011293-7cc7-41c4-a0fc-3e3bb98db834"
)
}
}
}
Update-MgIdentityConditionalAccessPolicy -BodyParameter $UpdateSettings -ConditionalAccessPolicyId $Policy.Id
几分钟之内,更新的条件访问策略就生效了,并且阻止就位。
要在周末结束后反转该过程,请使用原始组的 GUID 更新策略。有关使用 PowerShell 管理条件访问策略的更多信息,请参阅本文。
选项和选择
条件访问策略需要 Entra ID P1 许可证。如果您已经获得这些许可证,并因此投资了条件访问,那么添加新策略来控制周末访问并不困难。能够使用 PowerShell 控制策略可以更轻松地自动打开或关闭访问权限。
另一方面,如果您没有 Entra ID P1 许可证,您仍然可以通过几行 PowerShell 来阻止用户帐户。如果您不想阻止访问并只是提醒人们应该在周末少做一些工作,也许使用传输规则在内部邮件上标记“断开连接权”免责声明的技术是一个好方法。
选择是不错的…
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag