pryrotech/entra-app-auditor

GitHub: pryrotech/entra-app-auditor

一款用于识别与审计 Microsoft Entra ID 用户授权应用、发现影子 IT 的 PowerShell 工具。

Stars: 4 | Forks: 1

![PowerShell](https://img.shields.io/badge/PowerShell-Tool-blue) ![License](https://img.shields.io/github/license/pryrotech/port-diagnostics-tool) ![Maintained](https://img.shields.io/badge/Maintained-Yes-brightgreen) [![GitHub all releases](https://img.shields.io/github/downloads/pryrotech/entra-app-auditor/total.svg?cacheSeconds=3600)](https://github.com/pryrotech/entra-app-auditor/releases) ![NuGet Package Workflow](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/554d771bae154947.svg) # Shadowman (entra-app-auditor) 一个用于识别和审核 Microsoft Entra ID (Azure AD) 中用户已授权应用程序的 PowerShell 工具,重点关注发现“影子 IT”和安全风险。 ## 🌟 概述 **Shadowman** 是一个功能强大且目标明确的 PowerShell 脚本,专为 IT 管理员和安全专业人员设计。它不仅提供标准的应用程序清单,更专注于识别用户已授予权限的应用程序。通过整合授权数据、使用情况分析以及可配置的风险评分模型,该工具能够提供一份清晰、可操作的报告,帮助您: * **发现** 绕过正式 IT 审批流程的用户授权应用程序。 * **优先处理** 通过标记高权限应用程序来优化安全审查。 * **管理** 应用程序安全状况,识别长期未使用但拥有高权限的应用程序以便撤销。 * **证明** 合规性,提供清晰的用户授权审计追踪。 ## 🚀 主要特性 * **针对性用户授权审计**:精准识别由单个用户授权的应用程序,这是“影子 IT”的主要来源。 * **基于风险的优先级排序**:使用可配置的风险模型标记具有高权限的应用程序(例如 `Mail.ReadWrite`, `Files.ReadWrite.All`)。 * **使用情况分析**:将授权数据与登录日志关联,以区分活跃威胁与休眠威胁。 * **责任报告**:识别哪些用户已授权特定应用程序,以及每个应用程序的总授权数量。 * **灵活报告**:导出一个全面的 CSV 文件报告,便于筛选和分析。 * **依赖管理**:自动检查并安装必要的 Microsoft Graph PowerShell SDK 模块。 ## 🛠️ 先决条件 * **PowerShell 5.1 或更高版本**(推荐使用 PowerShell 7.x 以获得跨平台支持)。 * **Microsoft Entra ID/M365 管理员账户**,需具备以下 Microsoft Graph API 权限: * `Application.Read.All` * `Directory.Read.All` * `AuditLog.Read.All` * `DelegatedPermissionGrant.Read.All` * `User.Read.All` 脚本将在首次运行时自动提示您连接到 Microsoft Graph 并授权这些权限。 ## 📖 快速开始 ### 1. 下载脚本 克隆仓库以开始使用脚本。 ``` git clone https://github.com/pryrotech/entra-app-auditor.git ``` ### 通过 PowerShell 安装 ``` Install-Package EntraAppAuditor -Version 1.0.1 ``` ### 通过 .NET CLI 安装 ``` dotnet add package EntraAppAuditor --version 1.0.1 ``` ### 2. 运行审计 打开程序并从菜单选择要执行的审计。您也可以选择单独运行每个审计,而不是使用主程序。 首次运行时,会打开一个浏览器窗口供您使用 M365 账户进行身份验证并授权所需的 API 权限。 ### 3. 查看报告 在 Excel 或您偏好的电子表格应用程序中打开生成的 CSV 文件。报告将包含以下列: * `DisplayName` * `AppId` * `UserConsentsCount` * `ConsentingUsers` * `HasHighRiskPermissions` * `DelegatedPermissions` * `LastSignInUTC` * `UsageStatus` * ...更多\! ## ⚙️ 参数 | 参数 | 类型 | 描述 | 默认值 | | :--- | :--- | :--- | :--- | | `-ReportPath` | `string` | **(必需)** 保存生成 CSV 报告的完整路径。 | | ## 🤖 AI 透明度 该项目的部分功能是在生成式 AI 工具(Microsoft Copilot 及相关模型)的协助下开发的。 所有代码和文档在纳入前都经过人工审核、测试和验证。 AI 输出被视为建议,而非权威来源——每个实现都经过与官方 Microsoft Graph 和 Entra 文档的比对验证。 该仓库对所有提交和发布保持完整的人工问责制。 ## ⚖️ 许可证 本项目根据 MIT 许可证授权。详细信息请参阅 [LICENSE](https://www.google.com/search?q=LICENSE) 文件。 *免责声明:本工具仅供审计用途原样提供。作者不对基于其输出采取的任何行动负责。请始终遵循组织的安全和变更管理政策。*
标签:AI合规, Azure AD, IPv6, IT治理, Libemu, Microsoft Entra ID, PB级数据处理, PowerShell, Shadow IT, 多人体追踪, 安全运维, 应用程序审计, 报告工具, 智能体, 权限风险, 用户同意, 账号清理, 身份安全, 风险评分