在 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,然后执行以下操作:

  1. 禁用 Active Directory 中的用户。 请参阅 Disable-ADAccount

    Disable-ADAccount -Identity johndoe  
    
  2. 在 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,然后执行以下操作:

  1. 在 Microsoft Entra ID 中禁用用户。 请参阅 Update-MgUser

    $User = Get-MgUser -Search UserPrincipalName:'johndoe@contoso.com' -ConsistencyLevel eventual
    Update-MgUser -UserId $User.Id -AccountEnabled:$false
    
  2. 撤销用户的 Microsoft Entra ID 刷新令牌。 请参阅 Revoke-MgUserSignInSession

    Revoke-MgUserSignInSession -UserId $User.Id
    
  3. 禁用用户的设备。 请参阅 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 之间的同步频率。

最佳实践

注意

擦除后无法恢复设备上的数据。

后续步骤