我正在尝试使用Python通过Microsoft Graph API运行get请求。该请求的目标是查找用户最后一次登录Entra ID的时间。
我正在使用请求'https://graph.microsoft.com/v1.0/users/{user_id}?$select=displayName,lastNonInteractiveSignInDateTime,lastSignInDateTime,userPrincipalName'
,它返回显示名称和用户主体名称,但它不返回lastNonInteractiveSignInDateTime和lastSignInDateTime。实际回报为:
'{'@odata.context': 'https://graph.microsoft.com/v1.0/$metadata#users(displayName,lastNonInteractiveSignInDateTime,lastSignInDateTime,userPrincipalName)/$entity', 'displayName': '****', 'userPrincipalName': '****'}'
它运行的代码是:
import requests
def retrieveAzureAD():
# Azure app registration settings
CLIENT_ID = CLIENT_ID
CLIENT_SECRET = CLIENT_SECRET
TENANT_ID = TENANT_ID
RESOURCE = "https://graph.microsoft.com"
TOKEN_URL = f"https://login.microsoftonline.com/{TENANT_ID}/oauth2/token"
# Token configuration
token_data = {
'grant_type': 'client_credentials',
'client_id': CLIENT_ID,
'client_secret': CLIENT_SECRET,
'resource': RESOURCE
}
# Fetch token
token_r = requests.post(TOKEN_URL, data=token_data)
token = token_r.json().get('access_token')
# Headers
headers = {
'Authorization': f'Bearer {token}'
}
user_id = '****'
action_r = requests.get(
f'https://graph.microsoft.com/v1.0/users/{user_id}?$select=displayName,lastNonInteractiveSignInDateTime,lastSignInDateTime,userPrincipalName',
headers=headers
)
print(action_r)
last_action = "N/A"
actions = action_r.json()
print(actions)
retrieveAzureAD()
我如何实际获取最后一次登录的值?
1条答案
按热度按时间rta7y2nd1#
lastNonInteractiveSignInDateTime
和lastSignInDateTime
是signInActivity
的一部分,仅在$select
上返回更新查询
您的应用需要
AuditLog.Read.All
应用权限。