Поделиться через


Выявление и устранение рисков с помощью API защиты идентификации

Защита Microsoft Entra ID предлагает организациям аналитические сведения о рисках на основе удостоверений и методах для изучения и автоматического устранения этих рисков. В этом руководстве описывается использование API-интерфейсов защиты идентификаторов для выявления рисков и настройки рабочих процессов для подтверждения компрометации или включения исправления.

В этом руководстве описано, как использовать API защиты идентификаторов для выполнения:

  • Создайте рискованный вход.
  • Разрешить пользователям с рискованными входами исправлять состояние риска с помощью политики условного доступа, которая требует многофакторной проверки подлинности (MFA).
  • Запретить пользователю вход с помощью политики условного доступа.
  • Отклонить риск пользователя.

Предварительные условия

Чтобы завершить работу с этим руководством, убедитесь, что у вас есть:

  • Клиент Microsoft Entra с лицензией Microsoft Entra ID P1 или P2.
  • Доступ к клиенту API, например Graph Обозреватель, вошедшего в учетную запись с ролью администратора условного доступа.
  • Следующие делегированные разрешения: IdentityRiskEvent.Read.All, IdentityRiskyUser.ReadWrite.All, Policy.Read.All, Policy.ReadWrite.ConditionalAccess и User.ReadWrite.All.
  • Тестовая учетная запись пользователя для входа в анонимный сеанс для активации обнаружения рисков. Используйте закрытый сеанс просмотра или браузер Tor. В этом руководстве для тестового почтового псевдонима пользователя используется MyTestUser1.

Шаг 1. Активация обнаружения риска

В сеансе анонимного браузера войдите в центр администрирования Microsoft Entra как MyTestUser1.

Шаг 2. Перечисление обнаружений рисков

Когда MyTestUser1 вошел в Центр администрирования Microsoft Entra с помощью анонимного anonymizedIPAddress браузера, было обнаружено событие риска. Параметр запроса можно использовать $filter для получения только обнаруженных рисков, связанных с учетной записью пользователя MyTestUser1 . Для возврата события может потребоваться несколько минут.

Запрос

GET https://graph.microsoft.com/v1.0/identityProtection/riskDetections?$filter=userDisplayName eq 'MyTestUser1'

Отклик

HTTP/1.1 20O OK
Content-type: application/json

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#riskDetections",
  "value": [
    {
      "id": "d52a631815aaa527bf642b196715da5cf0f35b6879204ea5b5c99b21bd4c16f4",
      "requestId": "06f7fd18-b8f1-407d-86a3-f6cbe3a4be00",
      "correlationId": "2a38abff-5701-4073-a81e-fd3aac09cba3",
      "riskType": "anonymizedIPAddress",
      "riskEventType": "anonymizedIPAddress",
      "riskState": "atRisk",
      "riskLevel": "medium",
      "riskDetail": "none",
      "source": "IdentityProtection",
      "detectionTimingType": "realtime",
      "activity": "signin",
      "tokenIssuerType": "AzureAD",
      "ipAddress": "178.17.170.23",
      "activityDateTime": "2020-11-03T20:51:34.6245276Z",
      "detectedDateTime": "2020-11-03T20:51:34.6245276Z",
      "lastUpdatedDateTime": "2020-11-03T20:53:12.1984203Z",
      "userId": "4628e7df-dff3-407c-a08f-75f08c0806dc",
      "userDisplayName": "MyTestUser1",
      "userPrincipalName": "[email protected]",
      "additionalInfo": "[{\"Key\":\"userAgent\",\"Value\":\"Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Firefox/78.0\"}]",
      "location": {
        "city": "Chisinau",
        "state": "Chisinau",
        "countryOrRegion": "MD",
        "geoCoordinates": {
          "latitude": 47.0269,
          "longitude": 28.8416
        }
      }
    }
  ]
}

Шаг 3. Создание политики условного доступа

Политики условного доступа позволяют пользователям самостоятельно исправляться при обнаружении риска, позволяя им безопасно обращаться к ресурсам после завершения запроса политики. На этом шаге вы создадите политику условного доступа, которая требует, чтобы пользователи входить с помощью MFA при обнаружении среднего или высокого риска.

Настройка многофакторной проверки подлинности

При настройке учетной записи для MFA выберите оптимальный метод проверки подлинности для вашей ситуации.

  1. Войдите на защищенный сайт с помощью учетной записи MyTestUser1 .
  2. Выполните процедуру настройки MFA, используя подходящий для вашей ситуации метод, например с помощью приложения Microsoft Authenticator.

Создание политики условного доступа

Политика условного доступа позволяет задавать условия для определения уровней риска при входе. Уровни риска могут быть low, medium, highили none. В следующем примере показано, как требовать многофакторную проверку подлинности для входа со средним и высоким уровнем риска.

Запрос

POST https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies 
Content-type: application/json
 
{ 
  "displayName": "Policy for risky sign-in", 
  "state": "enabled", 
  "conditions": { 
    "signInRiskLevels": [ 
      "high", 
      "medium" 
    ], 
    "applications": { 
      "includeApplications": ["All"]
    }, 
    "users": { 
      "includeUsers": [ 
        "4628e7df-dff3-407c-a08f-75f08c0806dc" 
      ] 
    } 
  }, 
  "grantControls": { 
    "operator": "OR", 
    "builtInControls": [ 
      "mfa" 
    ] 
  } 
} 

Отклик

HTTP/1.1 201 Created
Content-type: application/json

{ 
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#identity/conditionalAccess/policies/$entity", 
  "id": "9ad78153-b1f8-4714-adc1-1445727678a8", 
  "displayName": "Policy for risky sign-in", 
  "createdDateTime": "2020-11-03T20:56:38.6210843Z", 
  "modifiedDateTime": null, 
  "state": "enabled", 
  "sessionControls": null, 
  "conditions": { 
    "signInRiskLevels": [ 
      "high", 
      "medium" 
    ], 
    "clientAppTypes": [  
      "all"  
    ], 
    "platforms": null, 
    "locations": null, 
    "applications": { 
      "includeApplications": [ 
        "All" 
      ], 
      "excludeApplications": [], 
      "includeUserActions": [] 
    }, 
    "users": { 
      "includeUsers": [ 
        "4628e7df-dff3-407c-a08f-75f08c0806dc" 
      ], 
      "excludeUsers": [], 
      "includeGroups": [], 
      "excludeGroups": [], 
      "includeRoles": [], 
      "excludeRoles": [] 
    } 
  }, 
  "grantControls": { 
    "operator": "OR", 
    "builtInControls": [ 
      "mfa" 
    ], 
    "customAuthenticationFactors": [], 
    "termsOfUse": [] 
  } 
} 

Шаг 4. Запуск другого опасного входа, но завершение многофакторной проверки подлинности

При входе в анонимный браузер обнаруживается риск, но вы исправите его, выполнив многофакторную проверку подлинности.

Войдите в entra.microsoft.com с помощью учетной записи MyTestUser1 и завершите процесс MFA.

Шаг 5. Перечисление обнаружений рисков

Повторно выполните запрос на шаге 2, чтобы получить последнее обнаружение риска для учетной записи пользователя MyTestUser1 . Так как многофакторная проверка подлинности была завершена на шаге 4, состояние риска для этого последнего события входа теперь remediatedимеет значение .

[Необязательно] Блокировка входа пользователя

Если вы предпочитаете блокировать пользователей, связанных с рискованным входом, а не разрешать самостоятельное исправление, создайте новую политику условного доступа. Эта политика блокирует вход пользователей при обнаружении среднего или высокого риска. Ключевое отличие от политики на шаге 3 заключается в том, что для builtInControls теперь задано значение block.

Запрос

POST https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies
Content-type: application/json

{
  "displayName": "Policy for risky sign-in block access",
  "state": "enabled",
  "conditions": {
    "signInRiskLevels": [
      "high",
      "medium"
    ],
    "applications": {
      "includeApplications": ["All"]
    },
    "users": {
      "includeUsers": [
        "4628e7df-dff3-407c-a08f-75f08c0806dc"
      ]
    }
  },
  "grantControls": {
    "operator": "OR",
    "builtInControls": [
      "block"
    ]
  }
}

Отклик

HTTP/1.1 201 Created
Content-type: application/json

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#identity/conditionalAccess/policies/$entity",
  "id": "9ad78153-b1f8-4714-adc1-1445727678a8",
  "displayName": "Policy for risky sign-in block access",
  "createdDateTime": "2020-11-03T20:56:38.6210843Z",
  "modifiedDateTime": null,
  "state": "enabled",
  "sessionControls": null,
  "conditions": {
    "signInRiskLevels": [
      "high",
      "medium"
    ],
    "clientAppTypes": [ 
      "all" 
    ],
    "platforms": null,
    "locations": null,
    "applications": {
      "includeApplications": [
        "All"
      ],
      "excludeApplications": [],
      "includeUserActions": []
    },
    "users": {
      "includeUsers": [
        "4628e7df-dff3-407c-a08f-75f08c0806dc"
      ],
      "excludeUsers": [],
      "includeGroups": [],
      "excludeGroups": [],
      "includeRoles": [],
      "excludeRoles": []
    }
  },
  "grantControls": {
    "operator": "OR",
    "builtInControls": [
      "block"
    ],
    "customAuthenticationFactors": [],
    "termsOfUse": []
  }
}

С помощью этой политики условного доступа учетная запись MyTestUser1 теперь заблокирована для входа из-за среднего или высокого уровня риска при входе.

Заблокированный вход

Шаг 6. Увольняют рискованных пользователей

Если вы считаете, что пользователь не подвержен риску и не хотите применять политику условного доступа, вручную уволите рискованных пользователей, как показано в следующем запросе. Запрос возвращает 204 No Content ответ.

Запрос

POST https://graph.microsoft.com/v1.0/identityProtection/riskyUsers/dismiss
Content-Type: application/json

{
  "userIds": [
    "4628e7df-dff3-407c-a08f-75f08c0806dc"
  ]
}

После увольнения пользователя с рисками вы можете повторно выполнить запрос на шаге 2 и заметите, что учетная запись пользователя MyTestUser1 теперь имеет уровень none риска и значение riskState dismissed.

Шаг 7. Очистка ресурсов

На этом шаге удалите две созданные политики условного доступа. Запрос возвращает 204 No Content ответ.

DELETE https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies/9ad78153-b1f8-4714-adc1-1445727678a8