You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure中跟踪应用程序通过访问密钥的登录记录?

没问题,我来给你一步步说清楚怎么操作:

查看应用注册访问密钥登录记录的方法

在Azure门户中的查看路径

首先确认你已经拥有Azure Active Directory Premium 2订阅(这是查看详细登录日志的必要前提),然后按照以下步骤操作:

  • 登录Azure门户,进入Active Directory服务
  • 在左侧导航栏找到应用注册,点击进入后选择你要排查的指定应用
  • 在该应用的左侧菜单中,找到监控分类下的登录日志选项
  • 进入登录日志页面后,使用顶部的筛选器缩小范围:
    1. 在「应用」筛选器中选中你的目标应用
    2. 在「登录类型」筛选器中选择服务主体(因为使用访问密钥登录的是应用本身的服务主体身份,而非用户身份)
  • 点击列表中的任意一条登录记录,就能查看详细信息,其中会包含登录是否使用客户端密钥、对应的密钥ID等关键内容

通过SDK/API获取登录记录

要通过代码获取这些登录记录,推荐使用Microsoft Graph API,这是Azure AD数据交互的官方标准接口:

核心API端点

使用GET请求访问:

GET https://graph.microsoft.com/v1.0/auditLogs/signIns

筛选条件

通过$filter参数精准定位目标应用的服务主体登录记录:

GET https://graph.microsoft.com/v1.0/auditLogs/signIns?$filter=appId eq '你的应用ID' and signInEventTypes/any(t:t eq 'servicePrincipal')

所需权限

调用此API需要申请以下权限之一(需管理员同意):

  • AuditLog.Read.All(推荐,细粒度权限)
  • Directory.Read.All

SDK示例(以.NET SDK为例)

如果你使用Microsoft Graph .NET SDK,可以这样实现:

using Microsoft.Graph;
using Azure.Identity;

var graphClient = new GraphServiceClient(new ClientSecretCredential(
    "你的租户ID",
    "你的应用ID",
    "你的应用密钥"));

var signInRecords = await graphClient.AuditLogs.SignIns
    .Request()
    .Filter("appId eq 'YOUR_TARGET_APP_ID' and signInEventTypes/any(t:t eq 'servicePrincipal')")
    .GetAsync();

// 遍历处理登录记录
foreach (var signIn in signInRecords)
{
    Console.WriteLine($"登录时间: {signIn.CreatedDateTime}, 状态: {signIn.Status}");
}

注意:使用SDK时,需要先安装Microsoft.Graph和Azure.Identity NuGet包。

内容的提问来源于stack exchange,提问作者lorg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:34:35