Azure AD注册应用程序是Active Directory服务帐户的Azure广告版本。随着时间的推移,它们的数量增长并增长,每个都具有从Azure AD和Microsoft图形中消耗信息的权限。作为Azure AD的管理员,存在与这些注册应用程序相关的维护,即凭证有效性和更重要的应用程序有效性。

通过Azure Portal快速可见与Azure AD注册应用程序关联的凭据过期。我们可以快速看到当前,过期和到期即将到期凭据,如下屏幕截图所示。

但是关于与注册应用程序相关的活动呢?为此,我们需要深入了解每个应用程序以查看登录活动。

但是,如果我们有100个或1000的Azure AD注册应用程序,该怎么办?我们如何编程方式检查每个注册的应用程序,并查看凭据是否具有或即将过期,以及如果应用程序正在积极使用?这就是这个帖子封面。

先决条件

它是相当讽刺意味的是,为了将Microsoft Graph查询到审计Azure AD注册的应用程序和登录活动,我们将需要具有必要权限的注册应用程序。如果您没有以下权限,或使用/更新具有的现有应用程序,请注册一个新的应用程序;

  • 注册应用枚举
    • 为了枚举所有注册的应用程序,您需要注册应用程序;
      • Microsoft Graph => directory.read.all
  • Azure AD审核日志
  • 为了搜索与注册应用相关的登录活动
  • Microsoft Graph => auditlog.read.all

下面的脚本使用MSAL.PS PowerShell模块。您需要在运行脚本的主机上安装。

  • MSAL.PS模块用于Microsoft图形身份验证。有关更多详细信息,请参阅此帖子。

示例脚本

以下是一个示例脚本,其对Microsoft Graph进行了验证,利用您在上面列出的权限中注册的注册应用程序。

更新:

  • 第2行为您的AAD租户ID
  • 第3行为您的AAD应用程序ID
  • 第4行为您的AAD应用程序秘密
  • 第10行,提前使用的天数您要查看到期凭据(例如,在接下来的60天内到期的凭据)

运行脚本后,您将有两个集合。

  • $ expiringcredsapps集合包含包含已过期或将在接下来的60天内过期的凭据的注册应用程序(根据第10行的配置值)。
    • 收集对象还包含最近的标志
  • $ aadappsreport集合包含所有注册的应用程序以及最近的登录和凭据

概括

使用PowerShell和Microsoft Graph我们可以快速枚举和审计Azure AD注册应用程序。您可以在此脚本上轻松扩展并计划执行并启用通知。