可能需要管理员撤销用户的所有访问权限的情况包括已泄露帐户、员工离职和其他内部威胁。 根据环境的复杂性,管理员可以采取几个步骤来确保访问被撤销。 在某些情况下,从开始撤销访问到有效撤销访问之间可能有一段时间。
若要缓解此风险,必须了解令牌的工作原理。 令牌有许多种,且都属于本文中讨论的模式之一。
访问令牌和刷新令牌
访问令牌和刷新令牌经常用于胖客户端应用程序,也用于基于浏览器的应用程序(例如单页应用)。
- 当用户向属于 Microsoft Entra 的 Microsoft Entra ID 进行身份验证时,系统会评估授权策略,以确定是否可以授予用户访问特定资源的权限。
- 只要获得授权,Microsoft Entra ID 将为资源颁发访问令牌和刷新令牌。
- 如果身份验证协议允许,当访问令牌过期时,应用程序可以通过将刷新令牌传递给 Microsoft Entra ID 来无提示地重新对用户进行身份验证。 默认情况下,Microsoft Entra ID 颁发的访问令牌有效期为 1 小时。
- 然后,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 PowerShell。 若要了解详细信息,请阅读有关弃用的更新。
我们建议迁移到 Microsoft Graph PowerShell,以便与 Microsoft Entra ID(以前称为 Azure AD)进行交互。 Microsoft Graph PowerShell 在 PowerShell 7 上提供,支持访问所有 Microsoft Graph API。 有关常见迁移查询的解答,请参阅迁移常见问题解答。
访问已撤消时
只要管理员完成上述步骤,用户就无法为任何绑定到 Microsoft Entra ID 的应用程序获得新的令牌。 吊销和用户失去访问权限之间的时间取决于应用程序授予访问权限的方式:
- 对于使用访问令牌的应用程序,当访问令牌过期时,用户将失去访问权限。 
- 对于使用会话令牌的应用程序,现有会话在令牌过期后立即结束。 如果用户的禁用状态与应用程序同步,则应用程序可以自动撤销用户的现有会话(如果配置为这样做的话)。 所需时间取决于应用程序和 Microsoft Entra ID 之间的同步频率。 
最佳实践
- 使用 Microsoft Intune 管理设备和应用程序。 Intune 托管设备可以重置为出厂设置。 如果设备为非托管设备,可以从托管应用中擦除公司数据。 这些进程可用于从最终用户设备中删除可能敏感的数据。 但是,对于要触发的任一进程,设备必须连接到 Internet。 如果设备处于离线状态,则设备仍可访问所有本地存储的数据。
注意
擦除后,无法恢复设备上的数据。
- 在适当的情况下使用 Microsoft Defender for Cloud 应用阻止数据下载。 如果只能联机访问数据,组织可以监视会话并实时实施策略。 
- 在 Microsoft Entra ID 中使用连续访问评估(CAE)。 CAE 允许管理员撤销支持 CAE 的应用程序的会话令牌和访问令牌。