停用企业应用程序

停用企业应用程序提供了一种可逆的方法,可防止应用程序访问受保护的资源,而无需永久将其从租户中删除。 停用应用程序时,它会立即停止接收新的访问令牌,但现有令牌在过期之前保持有效。 此方法对于安全调查、可疑应用程序的临时挂起或需要维护应用程序配置数据时非常有用。

与永久删除应用程序不同,停用会保留所有应用程序元数据、权限和配置设置,以便在需要时轻松重新激活应用程序。 应用程序在租户的企业应用程序列表中保持可见,但用户无法登录且未颁发任何新令牌。

本文介绍如何停用企业应用程序、查看已停用的应用程序,并在必要时重新激活它们。

先决条件

在停用应用程序之前,请确保满足以下要求:

  • 以下 Microsoft Entra 角色之一:
  • 如果使用 Microsoft Graph,则具有以下 API 权限:
    • Application.ReadWrite.All (委托或应用程序)
    • Application.ReadWrite.OwnedBy (应用程序,仅适用于已拥有的应用)

了解应用程序停用

停用应用程序时,会发生以下行为:

  • 即时效果:

    • 拒绝新的访问令牌请求
    • 用户无法登录到应用程序
    • 应用程序无法使用新令牌访问受保护的资源
  • 保留的元素:

    • 现有访问令牌在配置的生存期到期之前保持有效
    • 保留应用程序配置、权限和元数据
    • 应用程序在企业应用程序列表中保持可见
    • 服务主体对象被保存在租户环境中

当用户尝试登录到已停用的应用程序时,他们会收到一条错误消息,指示应用程序已被其所有者禁用。 这不同于其他错误消息,例如无效凭据或拒绝访问。

与其他选项的比较

Microsoft Entra 应用和服务主体可以通过四种方式被禁止使用:

  • isDisabled (deactivate) 属性是在应用所有者或管理员全局禁用的应用上设置的。
  • disabledByMicrosoftStatus (由 Microsoft 禁用)属性在Microsoft全局禁用的应用上设置。
  • accountEnabled (禁用登录) 属性是在应用所有者或管理员在租户中禁用的服务主体上设置的。
  • DELETE (删除)操作由应用所有者或管理员作为对应用或服务主体的操作来完成。

下表更详细地概述了不同的方法:

Action 令牌颁发 配置设置已保留 可逆 Scope
停用 Blocked 是的 是的 全局(所有租户)
Microsoft禁用 Blocked 是的 是的 全局(所有租户)
禁用登录 在租户中被阻止 是的 是的 仅限单租户
删除 Blocked 否(30 天回收站) 是(30 天) 全球

停用应用程序

若要使用 Microsoft 图形 API 停用应用程序,至少需要 云应用程序管理员 角色。

  1. 如果没有应用程序 ID,请获取应用程序 ID

    GET https://graph.microsoft.com/v1.0/applications?$filter=displayName eq 'Your App Name'
    
  2. 停用应用程序

    PATCH https://graph.microsoft.com/beta/applications/{application-id}
    Content-Type: application/json
    
    {
        "isDisabled": true
    }
    
  3. 验证注销

    GET https://graph.microsoft.com/beta/applications/{application-id}
    

    响应包括 "isDisabled": true

查看已停用的应用程序

  1. 列出所有已停用的应用程序

    GET https://graph.microsoft.com/beta/applications?$filter=isDisabled eq true
    
  2. 获取特定应用程序状态

    GET https://graph.microsoft.com/beta/applications/{application-id}?$select=displayName,isDisabled,appId
    

调查已停用的应用程序

处理停用的应用程序时,通过检查应用程序的配置(包括 API 权限、身份验证设置、证书和登录日志)进行彻底调查。 仔细记录调查结果,指出停用原因、任何可疑活动或安全问题、受影响的用户以及可能影响组织的依赖项。

根据您的调查,采取适当的措施,例如,如果怀疑存在泄露,升级或报告给安全团队,在重新激活之前删除不必要的权限,或更新应用程序配置以解决已识别的安全问题。 如果不再需要应用程序或构成持续的安全风险,请考虑永久删除而不是重新激活。

重新激活应用程序

若要使用 Microsoft 图形 API 重新激活应用程序,至少需要 应用程序管理员 角色。

  1. 重新激活应用程序

    PATCH https://graph.microsoft.com/v1.0/applications/{application-id}
    Content-Type: application/json
    
    {
        "isDisabled": false
    }
    
  2. 验证重新激活

    GET https://graph.microsoft.com/v1.0/applications/{application-id}?$select=displayName,isDisabled
    

    响应显示 "isDisabled": false

防止非管理员重新激活

在停用应用程序之前,请从应用程序中删除所有所有者。 这可确保只有租户范围 microsoft.directory/applications/enable 内的用户才能重新激活应用程序。 此范围仅限于管理角色。 此范围仅限于管理角色。