Identificación y corrección de riesgos mediante las API de protección de identidades

Protección de Microsoft Entra ID proporciona a las organizaciones información sobre el riesgo basado en identidades y diferentes formas de investigar y corregir automáticamente el riesgo. Las API de Identity Protection usadas en este tutorial pueden ayudarle a identificar los riesgos y configurar un flujo de trabajo para confirmar el riesgo o habilitar la corrección.

En este tutorial, aprenderá a usar las API de protección de identidades para:

  • Genere un inicio de sesión de riesgo.
  • Permitir que los usuarios con inicios de sesión de riesgo corrijan el estado de riesgo con una directiva de acceso condicional que requiera autenticación multifactor (MFA).
  • Impedir que un usuario inicie sesión con una directiva de acceso condicional.
  • Descartar un riesgo de usuario.

Requisitos previos

Para completar este tutorial, necesita los siguientes recursos y privilegios:

  • Un inquilino de Microsoft Entra en funcionamiento con una licencia P1 o P2 de Microsoft Entra ID.
  • Inicie sesión en un cliente de API, como Graph Explorer , con una cuenta que tenga al menos el rol de administrador de acceso condicional .
  • Concédese los siguientes permisos delegados: IdentityRiskEvent.Read.All, IdentityRiskyUser.ReadWrite.All, Policy.Read.All, Policy.ReadWrite.ConditionalAccessy User.ReadWrite.All.
  • Una cuenta de usuario de prueba que se usa para iniciar sesión más adelante en una sesión anónima para desencadenar una detección de riesgos. Puede usar una sesión de exploración privada o el explorador Tor. En este tutorial, el alias de correo de usuario de prueba es MyTestUser1.

Paso 1: Desencadenar una detección de riesgos

En la sesión anónima del explorador, inicie sesión como MyTestUser1 para entra.microsoft.com.

Paso 2: Enumerar detecciones de riesgos

Cuando MyTestUser1 inició sesión en el Centro de administración Microsoft Entra mediante el explorador anónimo, se detectó un anonymizedIPAddress evento de riesgo. Puede usar el parámetro de $filter consulta para obtener solo las detecciones de riesgo asociadas a la cuenta de usuario MyTestUser1 . El evento puede tardar unos minutos en devolverse.

Solicitud

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

Respuesta

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

Paso 3: Crear una directiva de acceso condicional

Puede usar directivas de acceso condicional en su organización para permitir que los usuarios puedan corregirse automáticamente cuando se detecte riesgo. La corrección automática permite a los usuarios desbloquearse a sí mismos para acceder a sus recursos de forma segura después de completar la solicitud de directiva. En este paso, creará una directiva de acceso condicional que requiere que el usuario inicie sesión con MFA si se produce una detección de riesgo medio o alto.

Configurar la autenticación multifactor

Al configurar una cuenta para MFA, puede elegir entre varios métodos para autenticar al usuario. Elija el mejor método para su situación para completar este tutorial.

  1. Inicie sesión en el sitio de protección de la cuenta mediante la cuenta MyTestUser1 .
  2. Complete el procedimiento de configuración de MFA con el método adecuado para su situación, como el uso de la aplicación Microsoft Authenticator.

Creación de la directiva de acceso condicional

La directiva de acceso condicional permite establecer las condiciones de la directiva para identificar los niveles de riesgo de inicio de sesión. Los niveles de riesgo pueden ser low, medium, high, none. En el ejemplo siguiente se muestra cómo requerir MFA para los inicios de sesión con niveles de riesgo medio y alto.

Solicitud

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

Respuesta

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

Paso 4: Desencadenar otro inicio de sesión de riesgo pero completar la autenticación multifactor

Al iniciar sesión en el explorador anónimo, se detectó un riesgo, pero lo corrigió completando MFA.

Inicie sesión en entra.microsoft.com con la cuenta MyTestUser1 y complete el proceso de MFA.

Paso 5: Enumerar detecciones de riesgo

Vuelva a ejecutar la solicitud en el paso 2 para obtener la detección de riesgos más reciente para la cuenta de usuario MyTestUser1 . Dado que MFA se completó en el paso 4, riskState para este evento de inicio de sesión más reciente ahora remediatedes .

[Opcional] Impedir que el usuario inicie sesión

En lugar de proporcionar al usuario la oportunidad de corregirse automáticamente, puede impedir que el usuario que está asociado a un inicio de sesión de riesgo inicie sesión. En este paso, creará una nueva directiva de acceso condicional que impide que el usuario inicie sesión si se produce una detección de riesgo medio o alto. La diferencia entre esta directiva y la directiva de versión preliminar en el paso 3 es que builtInControls ahora está establecido en block.

Solicitud

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

Respuesta

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

Con esta directiva de acceso condicional en vigor, la cuenta MyTestUser1 ahora está bloqueada para iniciar sesión porque el nivel de riesgo de inicio de sesión es medium o high.

Inicio de sesión bloqueado

Paso 6: Descartar usuarios de riesgo

Si cree que el usuario no está en riesgo y no quiere aplicar una directiva de acceso condicional, puede descartar manualmente al usuario de riesgo. La solicitud devuelve una 204 No Content respuesta.

Solicitud

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

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

Después de descartar al usuario de riesgo, puede volver a ejecutar la solicitud en el paso 2 y observará que la cuenta de usuario MyTestUser1 ahora tiene un nivel de riesgo de none y un riskState de dismissed.

Paso 7: Limpiar los recursos

En este paso, eliminará las dos directivas de acceso condicional que ha creado. La solicitud devuelve una 204 No Content respuesta.

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