通过

撤销Microsoft Entra ID中的用户访问权限

概述

可能需要管理员撤销用户的所有访问权限的情况包括已泄露帐户、员工离职和其他内部威胁。 根据环境的复杂性,管理员可以采取几个步骤来确保访问被撤销。 在某些情况下,从开始撤销访问到有效撤销访问之间可能有一段时间。

若要缓解此风险,必须了解令牌的工作原理。 令牌有许多种,且都属于本文中讨论的模式之一。

先决条件

本文中的 PowerShell 步骤需要以下各项:

  • 已安装 Microsoft Graph PowerShell SDK。 安装所需的模块:

    Install-Module Microsoft.Graph.Users
    Install-Module Microsoft.Graph.Users.Actions
    Install-Module Microsoft.Graph.Identity.DirectoryManagement
    
  • 使用具有相应角色的帐户登录。 不同的步骤需要不同的角色:

  • 使用所需范围连接到Microsoft Graph:

    Connect-MgGraph -Environment China -ClientId 'YOUR_CLIENT_ID' -TenantId 'YOUR_TENANT_ID' -Scopes "User.ReadWrite.All","Directory.AccessAsUser.All"
    

访问令牌和刷新令牌

访问令牌和刷新令牌经常用于厚客户端应用程序,还用于基于浏览器的应用程序,例如单页应用程序。

  • 当用户向Microsoft Entra ID进行身份验证时(Microsoft Entra的一部分)将评估授权策略,以确定是否可以授予用户对特定资源的访问权限。
  • 授权后,Microsoft Entra ID为资源颁发访问令牌和刷新令牌。
  • 如果身份验证协议允许,应用程序可以在访问令牌过期时,通过将刷新令牌传递给 Microsoft Entra ID,无提示地对用户重新进行身份验证。 默认情况下,Microsoft Entra ID颁发的访问令牌持续 1 小时。
  • 然后,Microsoft Entra ID重新评估其授权策略。 如果用户仍获得授权,Microsoft Entra ID颁发新的访问令牌和刷新令牌。

访问令牌如果需要在其通常的一小时生命周期内的较短时间段内吊销,则可能会带来安全风险。 因此,Microsoft正积极努力将连续的访问评估引入Office 365应用程序,这有助于确保访问令牌几乎实时失效。

会话令牌(Cookie)

大多数基于浏览器的应用程序使用会话令牌,而不是访问和刷新令牌。

  • 当用户打开浏览器并通过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,使用所需范围连接到Microsoft Graph(请参阅 Prerequisites),并执行以下操作:

  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

    Get-MgUserRegisteredDevice -UserId $User.Id -All | ForEach-Object {
        Update-MgDevice -DeviceId $_.Id -AccountEnabled:$false
    }
    

注意

有关可执行这些步骤的特定角色的信息,请查看 Microsoft Entra 内置角色

注意

Azure AD Powershell 计划于 2024 年 3 月 30 日弃用。 若要了解详细信息,请阅读弃用更新

建议迁移到 Microsoft Graph PowerShell以与 Microsoft Entra ID(以前Azure AD)交互。 Microsoft Graph PowerShell 允许访问所有Microsoft Graph API,并在 PowerShell 7 上可用。 有关常见迁移查询的解答,请参阅迁移常见问题解答

访问已撤消时

管理员执行上述步骤后,用户无法获取绑定到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 Apps 阻止数据下载。 如果只能联机访问数据,组织可以监视会话并实时实施策略。

  • 在 Microsoft Entra ID 中使用连续访问评估(CAE)。 CAE 允许管理员撤销支持 CAE 的应用程序的会话令牌和访问令牌。

后续步骤