停用企业应用程序提供了一种可逆的方法,可防止应用程序访问受保护的资源,而无需永久将其从租户中删除。 停用应用程序时,它会立即停止接收新的访问令牌,但现有令牌在过期之前保持有效。 此方法对于安全调查、可疑应用程序的临时挂起或需要维护应用程序配置数据时非常有用。
与永久删除应用程序不同,停用会保留所有应用程序元数据、权限和配置设置,以便在需要时轻松重新激活应用程序。 应用程序在租户的企业应用程序列表中保持可见,但用户无法登录且未颁发任何新令牌。
本文介绍如何停用企业应用程序、查看已停用的应用程序,并在必要时重新激活它们。
先决条件
在停用应用程序之前,请确保满足以下要求:
- 以下 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 停用应用程序,至少需要 云应用程序管理员 角色。
如果没有应用程序 ID,请获取应用程序 ID
GET https://graph.microsoft.com/v1.0/applications?$filter=displayName eq 'Your App Name'停用应用程序
PATCH https://graph.microsoft.com/beta/applications/{application-id} Content-Type: application/json { "isDisabled": true }验证注销
GET https://graph.microsoft.com/beta/applications/{application-id}响应包括
"isDisabled": true。
查看已停用的应用程序
列出所有已停用的应用程序
GET https://graph.microsoft.com/beta/applications?$filter=isDisabled eq true获取特定应用程序状态
GET https://graph.microsoft.com/beta/applications/{application-id}?$select=displayName,isDisabled,appId
调查已停用的应用程序
处理停用的应用程序时,通过检查应用程序的配置(包括 API 权限、身份验证设置、证书和登录日志)进行彻底调查。 仔细记录调查结果,指出停用原因、任何可疑活动或安全问题、受影响的用户以及可能影响组织的依赖项。
根据您的调查,采取适当的措施,例如,如果怀疑存在泄露,升级或报告给安全团队,在重新激活之前删除不必要的权限,或更新应用程序配置以解决已识别的安全问题。 如果不再需要应用程序或构成持续的安全风险,请考虑永久删除而不是重新激活。
重新激活应用程序
若要使用 Microsoft 图形 API 重新激活应用程序,至少需要 应用程序管理员 角色。
重新激活应用程序
PATCH https://graph.microsoft.com/v1.0/applications/{application-id} Content-Type: application/json { "isDisabled": false }验证重新激活
GET https://graph.microsoft.com/v1.0/applications/{application-id}?$select=displayName,isDisabled响应显示
"isDisabled": false。
防止非管理员重新激活
在停用应用程序之前,请从应用程序中删除所有所有者。 这可确保只有租户范围 microsoft.directory/applications/enable 内的用户才能重新激活应用程序。 此范围仅限于管理角色。 此范围仅限于管理角色。
相关内容
- 删除企业应用程序 以永久删除
- 为实现租户特定的阻止功能,禁用用户登录
- 从回收站还原企业应用程序
- 使用审核日志监视应用程序使用情况