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

如何通过Postman从Azure AD获取用户的lastSignInDateTime

如何用Postman从Azure AD获取用户lastSignInDateTime信息

要获取用户的lastSignInDateTime,你需要通过Microsoft Graph API的signInActivity属性来实现,下面是具体步骤和问题排查方案:

1. 确认必要前提

  • 权限要求:必须为你的Azure AD应用注册添加以下权限之一(需管理员同意):
    • 委托权限:User.Read.All
    • 应用权限:Directory.Read.All
  • 许可证要求:你的Azure AD租户必须拥有Azure AD Premium P1或P2许可证,否则无法访问signInActivity属性。

2. 正确配置API请求

你之前使用的URL格式本身没问题,可补充显示名称方便识别用户,具体配置如下:

  • 请求方法:GET
  • 请求URL:https://graph.microsoft.com/v1.0/users?$select=id,displayName,signInActivity
  • 请求头:添加Authorization字段,值为Bearer {你的访问令牌}

返回的响应中,signInActivity对象会包含lastSignInDateTime字段,示例响应片段:

{
  "id": "xxx",
  "displayName": "张三",
  "signInActivity": {
    "lastSignInDateTime": "2024-05-20T12:34:56Z",
    "lastSignInRequestId": "xxx"
  }
}

3. Postman中配置OAuth 2.0身份验证

根据你使用的权限类型选择对应授权方式:

方式一:委托权限(Authorization Code)

  • 授权类型:Authorization Code
  • 授权URL:https://login.microsoftonline.com/{你的租户ID}/oauth2/v2.0/authorize
  • 令牌URL:https://login.microsoftonline.com/{你的租户ID}/oauth2/v2.0/token
  • 客户端ID:你的Azure AD应用注册的客户端ID
  • 范围:https://graph.microsoft.com/User.Read.All offline_access
  • 勾选Authorize using browser,点击Get New Access Token,完成登录授权后使用令牌。

方式二:应用权限(Client Credentials)

  • 授权类型:Client Credentials
  • 令牌URL:https://login.microsoftonline.com/{你的租户ID}/oauth2/v2.0/token
  • 客户端ID:你的Azure AD应用注册的客户端ID
  • 客户端密钥:应用注册中生成的客户端密码
  • 范围:https://graph.microsoft.com/.default
  • 点击Get New Access Token,直接获取令牌使用。

4. 常见失败原因排查

  • 权限未配置或未同意:检查Azure AD应用注册的「API权限」页面,确认已添加对应权限并完成「授予管理员同意」操作。
  • 无Premium许可证:如果租户没有P1/P2,signInActivity会返回空值或直接提示权限不足。
  • 令牌权限不足:解码你的访问令牌(可通过jwt.ms查看),检查scp(委托权限)或roles(应用权限)声明中是否包含所需权限。
  • 错误的select参数:不能直接$select=lastSignInDateTime,必须选择父属性signInActivity,才能获取其子字段lastSignInDateTime。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 12:43:23