在 Microsoft Entra ID 中撤销用户访问权限
可能需要管理员撤销用户的所有访问权限的情况包括已泄露帐户、员工离职和其他内部威胁。 根据环境的复杂性,管理员可以采取几个步骤来确保访问被撤销。 在某些情况下,从开始撤销访问到有效撤销访问之间可能有一段时间。
若要缓解此风险,必须了解令牌的工作原理。 令牌有很多种类型,属于以下各节所述的模式之一。
访问令牌和刷新令牌
访问令牌和刷新令牌经常用于胖客户端应用程序,也用于基于浏览器的应用程序(例如单页应用)。
当用户向属于 Microsoft Entra 的 Microsoft Entra ID 进行身份验证时,系统会评估授权策略,以确定是否可以授予用户访问特定资源的权限。
如果获得授权,Microsoft Entra ID 将为资源颁发访问令牌和刷新令牌。
默认情况下,Microsoft Entra ID 颁发的访问令牌持续 1 小时。 如果身份验证协议允许,当访问令牌过期时,应用程序可以通过将刷新令牌传递给 Microsoft Entra ID 来无提示地重新对用户进行身份验证。
然后,Microsoft Entra ID 将重新评估其授权策略。 如果用户仍获得授权,则 Microsoft Entra ID 将发布新的访问令牌并刷新令牌。
如果必须在短于令牌的生存期(通常为一小时左右)内撤销访问,则访问令牌可能是一个安全问题。 出于这个原因,Microsoft 正在积极努力将连续访问评估引入 Office 365 应用程序,这有助于确保访问令牌在近乎实时的情况下失效。
会话令牌 (cookies)
大多数基于浏览器的应用程序使用会话令牌,而不是访问和刷新令牌。
当用户打开浏览器并通过 Microsoft Entra ID 对应用程序进行身份验证时,用户将收到两个会话令牌。 一个来自 Microsoft Entra ID,另一个来自应用程序。
应用程序发出自己的会话令牌后,对该应用程序的访问将由应用程序的会话控制。 此时,用户只受应用程序能够识别的授权策略的影响。
当应用程序将用户发送回 Microsoft Entra ID 时,会经常重新评估 Microsoft Entra ID 的授权策略。 重估通常会以无提示方式发生,但频率取决于应用程序的配置方式。 只要会话令牌有效,应用程序可能永远不会将用户发送回 Microsoft Entra ID。
对于要撤销的会话令牌,应用程序必须基于其自身的授权策略来撤消访问。 Microsoft Entra ID 无法直接撤销应用程序颁发的会话令牌。
撤消对混合环境中用户的访问权限
对于使用本地 Active Directory 与 Microsoft Entra ID 同步的混合环境,Microsoft 建议 IT 管理员采取以下操作。 如果你有仅 Microsoft Entra 环境,请跳到“Microsoft Entra 环境”部分。
本地 Active Directory 环境
作为 Active Directory 中的管理员,请连接到本地网络,打开 PowerShell,然后执行以下操作:
禁用 Active Directory 中的用户。 请参阅 Disable-ADAccount。
Disable-ADAccount -Identity johndoe
在 Active Directory 中重置用户密码两次。 请参阅 Set-ADAccountPassword。
注意
更改用户密码两次的原因是为了降低传递哈希的风险,尤其是在本地密码复制出现延迟的情况下。 如果你可以安全地假设此帐户没有遭到泄露,则只能重置密码一次。
重要
不要在以下 cmdlet 中使用示例密码。 请确保将密码更改为随机字符串。
Set-ADAccountPassword -Identity johndoe -Reset -NewPassword (ConvertTo-SecureString -AsPlainText "p@ssw0rd1" -Force) Set-ADAccountPassword -Identity johndoe -Reset -NewPassword (ConvertTo-SecureString -AsPlainText "p@ssw0rd2" -Force)
Microsoft Entra 环境
作为 Microsoft Entra ID 中的管理员,打开 PowerShell,运行 Connect-MgGraph
,然后执行以下操作:
在 Microsoft Entra ID 中禁用用户。 请参阅 Update-MgUser。
$User = Get-MgUser -Search UserPrincipalName:'johndoe@contoso.com' -ConsistencyLevel eventual Update-MgUser -UserId $User.Id -AccountEnabled:$false
撤销用户的 Microsoft Entra ID 刷新令牌。 请参阅 Revoke-MgUserSignInSession。
Revoke-MgUserSignInSession -UserId $User.Id
禁用用户的设备。 请参阅 Get-MgUserRegisteredDevice。
$Device = Get-MgUserRegisteredDevice -UserId $User.Id Update-MgDevice -DeviceId $Device.Id -AccountEnabled:$false
注意
有关可以执行这些步骤的具体角色,请查看 Microsoft Entra 内置角色
注意
自 2024 年 3 月 30 日起,Azure AD 和 MSOnline PowerShell 模块已弃用。 若要了解详细信息,请阅读有关弃用的更新。 在此日期之后,对这些模块的支持仅限于到 Microsoft Graph PowerShell SDK 的迁移帮助和安全性修复。 弃用的模块将持续运行至 2025 年 3 月 30 日。
我们建议迁移到 Microsoft Graph PowerShell,以便与 Microsoft Entra ID(以前称为 Azure AD)进行交互。 有关常见迁移问题,请参阅迁移常见问题解答。 注意:2024 年 6 月 30 日之后,MSOnline 版本 1.0.x 可能会遇到中断。
访问已撤消时
管理员完成上述步骤后,用户将无法为任何绑定到 Microsoft Entra ID 的应用程序获得新的令牌。 吊销和用户失去访问权限之间的时间取决于应用程序授予访问权限的方式:
对于使用访问令牌的应用程序,当访问令牌过期时,用户将失去访问权限。
对于使用会话令牌的应用程序,现有会话在令牌过期后立即结束。 如果用户的禁用状态与应用程序同步,则应用程序可以自动撤销用户的现有会话(如果配置为这样做的话)。 所需时间取决于应用程序和 Microsoft Entra ID 之间的同步频率。
最佳实践
部署自动预配和取消预配解决方案。 从应用程序中取消预配用户是撤销访问权限的有效方式,尤其是对于使用会话令牌或允许用户在没有 Microsoft Entra 或 Windows Server AD 令牌的情况下直接登录的应用程序。 开发一个进程,以便在不支持自动预配和取消预配的应用中取消预配用户。 确保应用程序撤销其自己的会话令牌,并停止接受 Microsoft Entra 访问令牌,即使它们仍然有效。
使用 Microsoft Entra 应用预配。 Microsoft Entra 应用预配通常每 20-40 分钟自动运行一次。 配置 Microsoft Entra 预配以取消预配或停用 SaaS 和本地应用程序中的用户。 如果使用 Microsoft Identity Manager 自动取消预配本地应用程序中的用户,则可以使用 Microsoft Entra 应用预配通过 SQL 数据库、非 AD 目录服务器或其他连接器访问本地应用程序。
对于使用 Windows Server AD 的本地应用程序,可以配置 Microsoft Entra 生命周期工作流,以便在员工离职时更新 AD 中的用户(预览版)。
对于需要手动取消预配的应用程序确定并开发一个流程,例如使用 Microsoft Entra 权利管理自动创建 ServiceNow 工单,以便在员工失去访问权限时开具工单。 请确保管理员和应用程序所有者可以在需要时快速运行所需的手动任务以从这些应用中取消预配用户。
使用 Microsoft Intune 管理设备和应用程序。 Intune 托管设备可以重置为出厂设置。 如果设备为非托管设备,可以从托管应用中擦除公司数据。 这些进程可用于从最终用户设备中删除可能敏感的数据。 但是,对于要触发的任一进程,设备必须连接到 Internet。 如果设备处于离线状态,则设备仍可访问所有本地存储的数据。
注意
擦除后无法恢复设备上的数据。
在适当的情况下使用 Microsoft Defender for Cloud 应用阻止数据下载。 如果只能联机访问数据,组织可以监视会话并实时实施策略。
使用 Microsoft Entra ID 中的连续访问评估。 CAE 允许管理员为支持 CAE 的应用程序撤销会话令牌和访问令牌。