Перечисление входов
Пространство имен: microsoft.graph
Важно!
API версии /beta
в Microsoft Graph могут быть изменены. Использование этих API в производственных приложениях не поддерживается. Чтобы определить, доступен ли API в версии 1.0, используйте селектор версий.
Получение списка объектов signIn . Список содержит входы пользователей для клиента Microsoft Entra. Входы, когда имя пользователя и пароль передаются в рамках маркера авторизации, а успешные федеративные входы в настоящее время включаются в журналы входа.
Максимальный и стандартный размер страницы — 1000 объектов, и по умолчанию возвращаются последние входы. Доступны только события входа, произошедшие в течение Microsoft Entra ID периода хранения по умолчанию.
Примечание.
В этой статье описывается экспорт персональных данных с устройства или службы. Эти действия можно использовать для поддержки ваших обязательств в соответствии с Общим регламентом по защите данных (GDPR). Авторизованные администраторы клиентов могут использовать Microsoft Graph для исправления, обновления или удаления идентифицируемой информации о конечных пользователях, включая профили пользователей и сотрудников или персональные данные, такие как имя пользователя, должность, адрес или номер телефона, в вашей среде Microsoft Entra ID.
Этот API доступен в следующих национальных облачных развертываниях.
Глобальная служба | Правительство США L4 | Правительство США L5 (DOD) | Китай управляется 21Vianet |
---|---|---|---|
✅ | ✅ | ✅ | ✅ |
Разрешения
Для вызова этого API требуется одно из следующих разрешений. Дополнительные сведения, включая сведения о том, как выбрать разрешения, см. в статье Разрешения.
Тип разрешения | Разрешения (в порядке повышения привилегий) |
---|---|
Делегированные (рабочая или учебная учетная запись) | AuditLog.Read.All и Directory.Read.All |
Делегированные (личная учетная запись Майкрософт) | Не поддерживается |
Приложение | AuditLog.Read.All и Directory.Read.All |
Приложения должны быть правильно зарегистрированы для Microsoft Entra ID.
Помимо делегированных разрешений, вошедшему пользователю должна принадлежать по крайней мере одна из следующих Microsoft Entra ролей, которые позволяют ему читать отчеты о входе.
- Глобальный читатель
- Читатель отчетов
- Администратор безопасности
- Оператор безопасности
- Читатель сведений о безопасности
Просмотр примененных политик условного доступа (ЦС) в входах
Примененные политики ЦС, перечисленные в свойстве appliedConditionalAccessPolicies , доступны только пользователям и приложениям с ролями, которые позволяют им читать данные условного доступа. Если у пользователя или приложения есть разрешения на чтение журналов входа, но не разрешение на чтение данных условного доступа, свойство appliedConditionalAccessPolicies в ответе будет опущено. Следующие Microsoft Entra роли предоставляют пользователям разрешения на просмотр данных условного доступа:
- Глобальный читатель
- Администратор безопасности
- Читатель сведений о безопасности
- Администратор условного доступа
Для просмотра объектов appliedConditionalAccessPolicy в журналах входа приложения должны иметь по крайней мере одно из следующих разрешений:
- Policy.Read.All
- Policy.ReadWrite.ConditionalAccess
- Policy.Read.ConditionalAccess
Примечание. Microsoft Entra пользователи с любыми разрешениями могут читать журналы входа, в которых их пользователь является субъектом входа. Эта функция помогает пользователям обнаружить непредвиденные действия в своих учетных записях. Пользователи не могут считывать данные ЦС из собственных журналов, если у них нет одного из указанных выше разрешений ЦС.
HTTP-запрос
GET /auditLogs/signIns
Необязательные параметры запросов
Этот метод поддерживает $top
параметры запроса , $skiptoken
и $filter
OData для настройки ответа. Общие сведения см. в статье Параметры запроса OData.
Чтобы избежать истечения времени ожидания запроса, примените $filter
параметр с диапазоном времени для получения всех входов, как показано в примере 1.
Заголовки запросов
Имя | Описание |
---|---|
Авторизация | Bearer {token}. Обязательно. Дополнительные сведения о проверке подлинности и авторизации. |
Текст запроса
Не указывайте текст запроса для этого метода.
Отклик
В случае успеха этот метод возвращает код отклика 200 OK
и коллекцию объектов signIn в тексте отклика. Коллекция объектов перечисляется в порядке убывания на основе createdDateTime.
Примеры
Пример 1. Вывод списка всех входов за определенный период времени
В этом примере объект ответа показывает, что пользователь вошел с помощью MFA, которая была активирована политикой условного доступа, а основным методом проверки подлинности является FIDO.
Запрос
Ниже показан пример запроса.
GET https://graph.microsoft.com/beta/auditLogs/signIns?$filter=createdDateTime ge 2024-07-01T00:00:00Z and createdDateTime le 2024-07-14T23:59:59Z
Отклик
Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#auditLogs/signIns",
"value": [
{
"id":"1691d37b-8579-43a7-966a-0f35583c1300",
"createdDateTime":"2021-06-30T16:34:32Z",
"userDisplayName":"Test contoso",
"userPrincipalName":"testaccount1@contoso.com",
"userId":"26be570a-1111-5555-b4e2-a37c6808512d",
"appId":"c44b4083-3bb0-49c1-b47d-974e53cbdf3c",
"appDisplayName":"Azure Portal",
"authenticationContextClassReferences": [
{
"id":"C1",
"details":"required"
}
],
"ipAddress":"131.107.159.37",
"clientAppUsed":"Browser",
"clientCredentialType": "certificate",
"userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36 Edg/91.0.864.54",
"correlationId":"5d295068-919b-4017-85d8-44be2f5f5483",
"conditionalAccessStatus":"notApplied",
"originalRequestId":"7dccb0d7-1041-4d82-b785-d865272e1400",
"authenticationProtocol": "oAuth2",
"incomingTokenType": "Primary Refresh Token",
"isInteractive":true,
"homeTenantId": "4f7a7bc2-28e2-46a3-b90e-5ade5bc90138",
"homeTenantName": "",
"isTenantRestricted": false,
"tokenIssuerName":"",
"tokenIssuerType":"AzureAD",
"processingTimeInMilliseconds":761,
"riskDetail":"none",
"riskLevelAggregated":"none",
"riskLevelDuringSignIn":"none",
"riskState":"none",
"riskEventTypes_v2":[],
"resourceDisplayName":"Windows Azure Service Management API",
"resourceId":"797f4846-ba00-4fd7-ba43-dac1f8f63013",
"resourceServicePrincipalId": "a6033f22-27f9-45cb-8f63-7dd8a0590e4e",
"resourceTenantId":"99081087-73c4-48d1-a112-f60ff75114f7",
"homeTenantId":"99081087-73c4-48d1-a112-f60ff75114f7",
"authenticationAppDeviceDetails": [],
"authenticationAppPolicyDetails": [],
"authenticationMethodsUsed":[],
"authenticationRequirement":"singleFactorAuthentication",
"azureResourceId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachines/testVM",
"federatedCredentialId": "729ab02a-edd5-4ef5-a285-2d91a3c772ab",
"uniqueTokenIdentifier": "ZTE0OTk3YTQtZjg5Mi00YjBiLWIwNTEtZmViZTA1YzJhNDli",
"signInIdentifier":"testaccount1@contoso.com",
"signInEventTypes":["interactiveUser"],
"servicePrincipalId":"",
"sessionLifetimePolicies": [
{
"expirationRequirement": "tenantTokenLifetimePolicy",
"detail": "The user was required to sign in again according to the tenant session lifetime policy"
}
],
"uniqueTokenIdentifier": "ZTE0OTk3YTQtZjg5Mi00YjBiLWIwNTEtZmViZTA1YzJhNDli",
"userType":"member",
"flaggedForReview":false,
"isTenantRestricted":false,
"autonomousSystemNumber":3598,
"crossTenantAccessType":"none",
"status":{
"errorCode":50126,
"failureReason":"Error validating credentials due to invalid username or password.",
"additionalDetails":"The user didn't enter the right credentials. \u00a0It's expected to see some number of these errors in your logs due to users making mistakes."
},
"deviceDetail":{
"deviceId":"",
"displayName":"",
"operatingSystem":"Windows 10",
"browser":"Edge 91.0.864",
"isCompliant":false,
"isManaged":false,
"trustType":""
},
"location":{
"city":"Redmond",
"state":"Washington",
"countryOrRegion":"US",
"geoCoordinates":{
}
},
"appliedConditionalAccessPolicies":[],
"authenticationProcessingDetails":[
{
"key":"Login Hint Present",
"value":"True"
}
],
"managedServiceIdentity":{
"msiType":"systemAssigned",
"associatedResourceId":"/subscriptions/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa/resourcegroups/Scenario-TestRPToKeyVaultSAJob_USCentral/providers/Providers.Test/msiStateful/testrp30964",
"federatedTokenId" : "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"federatedTokenIssuer" : "https://aks_test.prod-aks.azure.com/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/"
},
"networkLocationDetails":[
{
"networkType":"namedNetwork",
"networkNames":["North America"]
}
],
"authenticationDetails":[
{
"authenticationStepDateTime":"2021-06-30T16:34:32Z",
"authenticationMethod":"Password",
"authenticationMethodDetail":"Password in the cloud",
"succeeded":false,
"authenticationStepResultDetail":"Invalid username or password or Invalid on-premise username or password.",
"authenticationStepRequirement":"Primary authentication"
}
],
"authenticationRequirementPolicies":[],
"sessionLifetimePolicies":[]
}
]
}
Пример 2. Получение первых 10 входов в приложения с appDisplayName, начинающимся с "Azure"
В этом примере объект ответа показывает, что пользователь вошел с помощью только основного метода проверки подлинности — облачного пароля. Ответ содержит @odata.nextLink
свойство, содержащее URL-адрес, который можно использовать для получения следующих 10 результатов.
Запрос
GET https://graph.microsoft.com/beta/auditLogs/signins?&$filter=startsWith(appDisplayName,'Azure')&$top=10
Отклик
Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#auditLogs/signIns",
"@odata.nextLink": "https://graph.microsoft.com/beta/auditLogs/signins?$filter=startsWith(appDisplayName%2c%27Azure%27)&$top=10&$skiptoken=3cff228c89605cc89b0dc753668deef4153e8644caa6d83ed1bb5f711b21cba4",
"value": [
{
"id":"1691d37b-8579-43a7-966a-0f35583c1300",
"createdDateTime":"2021-06-30T16:34:32Z",
"userDisplayName":"Test contoso",
"userPrincipalName":"testaccount1@contoso.com",
"userId":"26be570a-1111-5555-b4e2-a37c6808512d",
"appId":"c44b4083-3bb0-49c1-b47d-974e53cbdf3c",
"appDisplayName":"Azure Portal",
"ipAddress":"131.107.159.37",
"clientAppUsed":"Browser",
"userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36 Edg/91.0.864.54",
"correlationId":"5d295068-919b-4017-85d8-44be2f5f5483",
"conditionalAccessStatus":"notApplied",
"homeTenantId": "4f7a7bc2-28e2-46a3-b90e-5ade5bc90138",
"homeTenantName": "",
"isTenantRestricted": false,
"originalRequestId":"7dccb0d7-1041-4d82-b785-d865272e1400",
"isInteractive":true,
"tokenIssuerName":"",
"tokenIssuerType":"AzureAD",
"processingTimeInMilliseconds":761,
"riskDetail":"none",
"riskLevelAggregated":"none",
"riskLevelDuringSignIn":"none",
"riskState":"none",
"riskEventTypes_v2":[],
"resourceDisplayName":"Windows Azure Service Management API",
"resourceId":"797f4846-ba00-4fd7-ba43-dac1f8f63013",
"resourceTenantId":"99081087-73c4-48d1-a112-f60ff75114f7",
"homeTenantId":"99081087-73c4-48d1-a112-f60ff75114f7",
"authenticationAppDeviceDetails": [],
"authenticationAppPolicyDetails": [],
"authenticationMethodsUsed":[],
"authenticationRequirement":"singleFactorAuthentication",
"authenticationProtocol": "oAuth2",
"incomingTokenType": "Primary Refresh Token",
"signInIdentifier":"testaccount1@contoso.com",
"signInEventTypes":["interactiveUser"],
"servicePrincipalId":"",
"userType":"member",
"flaggedForReview":false,
"isTenantRestricted":false,
"autonomousSystemNumber":3598,
"crossTenantAccessType":"none",
"status":{
"errorCode":50126,
"failureReason":"Error validating credentials due to invalid username or password.",
"additionalDetails":"The user didn't enter the right credentials. \u00a0It's expected to see some number of these errors in your logs due to users making mistakes."
},
"uniqueTokenIdentifier": "ZTE0OTk3YTQtZjg5Mi00YjBiLWIwNTEtZmViZTA1YzJhNDli",
"deviceDetail":{
"deviceId":"",
"displayName":"",
"operatingSystem":"Windows 10",
"browser":"Edge 91.0.864",
"isCompliant":false,
"isManaged":false,
"trustType":""
},
"location":{
"city":"Redmond",
"state":"Washington",
"countryOrRegion":"US",
"geoCoordinates":{
}
},
"appliedConditionalAccessPolicies":[],
"authenticationProcessingDetails":[
{
"key":"Login Hint Present",
"value":"True"
}
],
"networkLocationDetails":[
{
"networkType":"namedNetwork",
"networkNames":["North America"]
}
],
"authenticationDetails":[
{
"authenticationStepDateTime":"2021-06-30T16:34:32Z",
"authenticationMethod":"Password",
"authenticationMethodDetail":"Password in the cloud",
"succeeded":false,
"authenticationStepResultDetail":"Invalid username or password or Invalid on-premise username or password.",
"authenticationStepRequirement":"Primary authentication"
}
],
"authenticationRequirementPolicies":[],
"sessionLifetimePolicies":[]
}
]
}
Пример 3. Получение первых 10 входов, в которых signInEventType не является interactiveUser, начиная с последнего входа
В этом примере ответ содержит @odata.nextLink
свойство, содержащее URL-адрес, который можно использовать для получения следующих 10 результатов.
Запрос
GET https://graph.microsoft.com/beta/auditLogs/signins?&$filter=(signInEventTypes/any(t: t ne 'interactiveUser'))&$orderby=createdDateTime DESC&$top=10
Отклик
Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#auditLogs/signIns",
"@odata.nextLink": "https://graph.microsoft.com/beta/auditLogs/signins?$filter=(signInEventTypes%2fany(t%3a+t+ne+%27interactiveUser%27))&$top=10&$orderby=createdDateTime+DESC&$skiptoken=186ac5626b89ae2a991ff26b674ac381be50b941a40542cb66f8136f2887275b",
"value": [
{
"id": "ef1e1fcc-80bd-489b-82c5-16ad80770e00",
"createdDateTime": "2022-03-18T18:13:37Z",
"userDisplayName": "MOD Administrator",
"userPrincipalName": "admin@contoso.com",
"userId": "4562bcc8-c436-4f95-b7c0-4f8ce89dca5e",
"appId": "de8bc8b5-d9f9-48b1-a8ad-b748da725064",
"appDisplayName": "Graph Explorer",
"ipAddress": "197.178.9.154",
"ipAddressFromResourceProvider": null,
"clientAppUsed": "Browser",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36",
"correlationId": "17b4f05d-3659-42b8-856d-99322911d398",
"conditionalAccessStatus": "notApplied",
"originalRequestId": "",
"isInteractive": false,
"tokenIssuerName": "",
"tokenIssuerType": "AzureAD",
"processingTimeInMilliseconds": 132,
"riskDetail": "none",
"riskLevelAggregated": "none",
"riskLevelDuringSignIn": "none",
"riskState": "none",
"riskEventTypes_v2": [],
"resourceDisplayName": "Microsoft Graph",
"resourceId": "00000003-0000-0000-c000-000000000000",
"resourceTenantId": "84841066-274d-4ec0-a5c1-276be684bdd3",
"homeTenantId": "84841066-274d-4ec0-a5c1-276be684bdd3",
"homeTenantName": "",
"authenticationAppDeviceDetails": [],
"authenticationAppPolicyDetails": [],
"authenticationMethodsUsed": [],
"authenticationRequirement": "singleFactorAuthentication",
"signInIdentifier": "",
"signInIdentifierType": null,
"servicePrincipalName": "",
"signInEventTypes": [
"nonInteractiveUser"
],
"servicePrincipalId": "",
"federatedCredentialId": "",
"userType": "member",
"flaggedForReview": false,
"isTenantRestricted": false,
"autonomousSystemNumber": 33771,
"crossTenantAccessType": "none",
"servicePrincipalCredentialKeyId": "",
"servicePrincipalCredentialThumbprint": "",
"uniqueTokenIdentifier": "ZWYxZTFmY2MtODBiZC00ODliLTgyYzUtMTZhZDgwNzcwZTAw",
"incomingTokenType": "none",
"authenticationProtocol": "none",
"resourceServicePrincipalId": "943603e4-e787-4fe9-93d1-e30f749aae39",
"mfaDetail": null,
"status": {
"errorCode": 0,
"failureReason": "Other.",
"additionalDetails": null
},
"deviceDetail": {
"deviceId": "eab73519-780d-4d43-be6d-a4a89af2a348",
"displayName": "DESKTOP-LK3PESR",
"operatingSystem": "Windows 10",
"browser": "Chrome 99.0.4844",
"isCompliant": false,
"isManaged": false,
"trustType": "Azure AD registered"
},
"location": {
"city": "Mombasa",
"state": "Coast",
"countryOrRegion": "KE",
"geoCoordinates": {}
},
"appliedConditionalAccessPolicies": [
{
"id": "80290cf6-04c8-4a25-8252-2b4d7d88228a",
"displayName": "Exchange Online Requires Compliant Device",
"enforcedGrantControls": [],
"enforcedSessionControls": [],
"result": "notEnabled",
"conditionsSatisfied": "none",
"conditionsNotSatisfied": "none",
"includeRulesSatisfied": [],
"excludeRulesSatisfied": []
},
{
"id": "a00746d4-8c33-47f7-b120-91936b367a54",
"displayName": "Office 365 App Control",
"enforcedGrantControls": [],
"enforcedSessionControls": [],
"result": "notEnabled",
"conditionsSatisfied": "none",
"conditionsNotSatisfied": "none",
"includeRulesSatisfied": [],
"excludeRulesSatisfied": []
}
],
"authenticationProcessingDetails": [
{
"key": "Root Key Type",
"value": "Unknown"
},
{
"key": "Oauth Scope Info",
"value": "[\"Application.ReadWrite.All\",\"AppRoleAssignment.ReadWrite.All\",\"DelegatedPermissionGrant.ReadWrite.All\",\"Directory.ReadWrite.All\",\"openid\",\"profile\",\"RoleManagement.Read.Directory\",\"User.Read\",\"email\",\"AuditLog.Read.All\"]"
}
],
"networkLocationDetails": [
{
"networkType": "namedNetwork",
"networkNames": [
"Suspicious countries"
]
}
],
"authenticationDetails": [],
"authenticationRequirementPolicies": [],
"sessionLifetimePolicies": [],
"privateLinkDetails": {
"policyId": "",
"policyName": "",
"resourceId": "",
"policyTenantId": ""
}
}
]
}
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по