【Powershell】超越限制:获取Azure AD登录日志
创始人
2025-01-07 21:32:25
0次

你是否正在寻找一种方法来追踪 Azure Active Directory(Azure AD)中用户的登录活动?
如果是的话,查看Azure AD用户登录日志最简单的方法是使用Microsoft Entra管理中心。打开 https://entra.microsoft.com/,然后进入 监视和健康状况 -> 登录日志 这里查看到的是全部用户的登录日志
在这里插入图片描述
或者选择一个用户 -> 登录日志。这里查看到的是单个用户的登录日志
在这里插入图片描述尽管通过Microsoft Entra管理中心查询登录日志通常受限于最近30天的数据访问,但我们可以通过定期执行 PowerShell 脚本来导出 Azure AD 的登录日志。这样,我们可以将这些日志数据保存到其他存储解决方案中,确保这些信息能够被长期保留并用于未来的分析和审查。

通过 Microsoft Graph API 和 PowerShell 获取 Azure AD 登录日志

一、注册 Microsoft Graph 应用程序

首先,你需要在 Azure AD 中注册一个应用程序,以便它能够访问 Azure 租户中的资源。

  1. 登录到Microsoft Entra管理中心:https://entra.microsoft.com/

  2. 转到 “应用程序” -> “应用注册” -> “新注册”。
    在这里插入图片描述

  3. 输入应用程序名称,选择 “仅此组织目录(仅 ********公司 - 单一租户)中的帐户” 并注册。
    在这里插入图片描述

  4. 进入到上一步新注册的应用中选择"API权限"
    在这里插入图片描述

  5. 在"API权限"部分,添加所需的权限,如下图 “AuditLog.Read.All” 和 “Directory.Read.All”。
    在这里插入图片描述

  6. 点击 “代表 ********公司 授子管理员同意” 以授予管理员同意。
    在这里插入图片描述

  7. 在"证书和密码"下面添加"客户端密码"*只有添加是可以看到值,务必记录,否则重新添加
    在这里插入图片描述

  8. 同时在"概述"中可以找到应用ID和租户ID
    在这里插入图片描述

二、获取认证令牌

使用以下 PowerShell 脚本来获取 Microsoft Graph API 的访问令牌:

$ApplicationID = "你的应用ID" $TenatDomainName = "你的租户ID" $AccessSecret = "应用密钥"  $Body = @{     Grant_Type = "client_credentials"     Scope = "https://graph.microsoft.com/.default"     client_Id = $ApplicationID     Client_Secret = $AccessSecret }  $ConnectGraph = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$TenatDomainName/oauth2/v2.0/token" -Method POST -Body $Body $token = $ConnectGraph.access_token 

三、使用 Microsoft Graph API 获取登录日志

使用获取到的令牌,你可以查询 Azure AD 中的登录日志。

$GraphSignInLogs = "https://graph.microsoft.com/v1.0/auditLogs/signIns" $result = (Invoke-RestMethod -Headers @{Authorization = "Bearer $($token)"} -Uri $GraphSignInLogs -Method Get).value 

处理分页

由于 Microsoft Graph API 每次最多返回 1000 个对象,你可能需要处理分页。检查响应中的 @odata.nextLink 属性,并使用它来获取后续的数据页。

筛选特定用户过去一周的登录日志

如果你只对特定的用户过去一周的登录感兴趣,比如 aaa@abc.com,你可以添加一个筛选条件:

$SetDate = (Get-Date).AddDays(-7) $SetDate = Get-Date($SetDate) -format yyyy-MM-dd $FilteredResults = $result | Where-Object {     $_.userPrincipalName.EndsWith('aaa@abc.com') -and $_.createdDateTime -gt $SetDate } 

导出登录日志

最后,你可以将查询结果导出到 CSV 文件:

$FilteredResults | Export-Csv "C:\PS\azure_ad_signin_logs.csv" -NoTypeInformation 

智慧的数据管理,安全的业务保障

现在已经基本掌握了如何利用 Microsoft Graph API 和 PowerShell 高效地获取 Azure AD 登录日志的技能。在信息安全日益成为企业核心关切的今天,能够准确掌握用户登录活动,不仅有助于维护系统安全,更是对企业数据资产负责的体现。通过定期审查和分析登录日志,您将能够及时发现潜在的安全威胁,采取预防措施,从而保护组织免受未授权访问的风险。

相关内容

热门资讯

实测交流透视挂!宝玛大厅ai智... 实测交流透视挂!宝玛大厅ai智能透视挂教程,宝玛大厅破解软件经验(本来有挂辅助)1、每一步都需要思考...
总算了解辅助器!朱雀吴江三缺一... 总算了解辅助器!朱雀吴江三缺一ai智能透视辅助挂技巧,朱雀吴江三缺一好像是有挂(有辅助挂细节)朱雀吴...
今日公布透视!九五至尊大厅ai... 今日公布透视!九五至尊大厅ai智能透视插件,九五至尊大厅有没有透视挂窍门(切实有挂技术)1、在九五至...
玩家必看科普开挂!聚闲麻将ai... 玩家必看科普开挂!聚闲麻将ai智能透视辅助挂软件,聚闲麻将总是真的有挂(有辅助挂方式)聚闲麻将能透视...
据报道开挂!旅游娱乐ai智能开... 据报道开挂!旅游娱乐ai智能开挂工具,旅游娱乐辅助工具演示(一直有挂教学)1、全新机制【旅游娱乐ai...
一分钟揭秘开挂!决胜朋来麻将a... 一分钟揭秘开挂!决胜朋来麻将ai智能透视辅助挂教程,决胜朋来麻将真是真的是有挂(有辅助挂总结)1、首...
如何分辨真伪透视!红牛ai智能... 如何分辨真伪透视!红牛ai智能透视攻略,红牛是不是有挂经验(真是有挂技术)1、操作简单,无需红牛手机...
2分钟细说辅助器!江湖大庆麻将... 2分钟细说辅助器!江湖大庆麻将ai智能透视辅助挂攻略,江湖大庆麻将竟然是真的有挂(有辅助挂头条)1、...
总算清楚透视挂!老夫子厅ai智... 总算清楚透视挂!老夫子厅ai智能透视挂技巧,老夫子厅怎么开挂课程(好像发现有挂)老夫子厅破解侠是真的...
解密关于辅助!菜鸟麻将ai智能... 解密关于辅助!菜鸟麻将ai智能透视辅助挂脚本,菜鸟麻将总是存在有挂(有辅助挂存在)1、用户打开应用后...