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


Выявление и устранение рисков с помощью 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. Активация обнаружения риска

В сеансе анонимного браузера войдите как MyTestUser1 , чтобы entra.microsoft.com.

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

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

Запрос

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

Отклик

{
  "@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": "MyTestUser1@contoso.com",
      "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" 
    ] 
  } 
} 

Отклик

{ 
  "@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"
    ]
  }
}

Отклик

{
  "@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 теперь заблокирована для входа, так как уровень риска при входе составляет medium или high.

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

Шаг 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