Tutorial: identificar e correção de riscos usando APIs do Microsoft GraphTutorial: Identify and remediate risks using Microsoft Graph APIs

A Proteção de Identidade do Azure AD fornece às organizações informações sobre riscos baseados em identidade e diferentes maneiras de investigar e correção automática de riscos.Azure AD Identity Protection provides organizations insight into identity-based risk and different ways to investigate and automatically remediate risk. As APIs de Proteção de Identidade usadas neste tutorial podem ajudá-lo a identificar riscos e configurar um fluxo de trabalho para confirmar o comprometimento ou habilitar a correção.The Identity Protection APIs used in this tutorial can help you identify risk and configure a workflow to confirm compromise or enable remediation. Para obter mais informações, consulte O que é risco?For more information, see What is risk?

Neste tutorial, você aprenderá a gerar uma entrada arriscada e correção do status de risco do usuário com uma política de acesso condicional que requer autenticação multifacional (MFA).In this tutorial, you learn how to generate a risky sign-in and remediate the risk status of the user with a conditional access policy that requires multi-factor authentication (MFA). Uma seção opcional mostra como impedir que o usuário entre também usando uma política de acesso condicional e descartando o risco do usuário.An optional section shows you how to block the user from signing in also using a conditional access policy, and dismissing the user risk.

Observação: Os objetos de resposta mostrados neste tutorial podem ser reduzidos para a capacidade de leitura.Note: The response objects shown in this tutorial might be shortened for readability.

Pré-requisitosPrerequisites

Para concluir com êxito este tutorial, certifique-se de que você tem os pré-requisitos necessários:To successfully complete this tutorial, make sure that you have the required prerequisites:

  • Você deve ter uma licença do Azure AD Premium P1 ou P2 para usar a API de detecção de riscos.You must have an Azure AD Premium P1 or P2 license to use the risk detection API.
  • Este tutorial usa o navegador Tor para entrar no portal do Azure anonimamente.This tutorial uses the Tor browser to sign in to the Azure portal anonymously. Você pode usar qualquer navegador anônimo para realizar a tarefa.You can use any anonymous browser to accomplish the task. Para baixar o navegador Tor, consulte Download Tor Browser.To download the Tor browser, see Download Tor Browser.
  • Este tutorial assume que você está usando o Microsoft Graph Explorer, mas você pode usar o Postman ou criar seu próprio aplicativo cliente para chamar o Microsoft Graph.This tutorial assumes that you are using Microsoft Graph Explorer, but you can use Postman, or create your own client app to call Microsoft Graph. Para chamar as APIs do Microsoft Graph neste tutorial, você precisa usar uma conta com a função de administrador global e as permissões apropriadas.To call the Microsoft Graph APIs in this tutorial, you need to use an account with the global administrator role and the appropriate permissions. Conclua as seguintes etapas para definir as permissões no Microsoft Graph Explorer:Complete the following steps to set permissions in Microsoft Graph Explorer:
    1. Inicie o Microsoft Graph Explorer.Start Microsoft Graph Explorer.

    2. Selecione Entrar com a conta da Microsoft e entre usando uma conta de administrador global do Azure AD.Select Sign-In with Microsoft and sign in using an Azure AD global administrator account. Uma vez acessado, você verá os detalhes da conta do usuário no painel esquerdo.After you successfully sign in, you can see the user account details in the left-hand pane.

    3. Selecione o ícone de configurações à direita dos detalhes da conta do usuário e, em seguida, selecione Selecionar permissões.Select the settings icon to the right of the user account details, and then select Select permissions.

      Definir permissões

    4. Role a lista de permissões para essas permissões:Scroll through the list of permissions to these permissions:

      • IdentityRiskEvents (2), expanda e selecione IdentityRiskEvent.Read.AllIdentityRiskEvents (2), expand and then select IdentityRiskEvent.Read.All
      • IdentityRiskyUser (2), expanda e selecione IdentityRiskyUser.ReadWrite.AllIdentityRiskyUser (2), expand and then select IdentityRiskyUser.ReadWrite.All
      • Política (13), expandir e selecionar Policy.Read.All e Policy.ReadWrite.ConditionalAccessPolicy (13), expand and then select Policy.Read.All and Policy.ReadWrite.ConditionalAccess
      • Usuário (8), expanda e selecione User.ReadWrite.AllUser (8), expand and then select User.ReadWrite.All

      Pesquisar permissões

    5. Selecione Consentimento e, em seguida, selecione Aceitar para aceitar o consentimento das permissões.Select Consent, and then select Accept to accept the consent of the permissions. Você não precisa consentir em nome da organização para essas permissões.You do not need to consent on behalf of your organization for these permissions.

      Aceitar permissões

Etapa 1: Criar uma conta de usuárioStep 1: Create a user account

Para este tutorial, você cria uma conta de usuário usada para testar detecções de risco.For this tutorial, you create a user account that is used to test risk detections. No corpo da solicitação, contoso.com altere para o nome de domínio do locatário.In the request body, change contoso.com to the domain name of your tenant. Encontre informações sobre locatários na página de visão geral do Azure Active Directory.You can find tenant information on the Azure Active Directory overview page.

SolicitaçãoRequest

POST https://graph.microsoft.com/v1.0/users
Content-type: application/json

{
  "accountEnabled":true,
  "displayName":"MyTestUser1",
  "mailNickname":"MyTestUser1",
  "userPrincipalName":"MyTestUser1@contoso.com",
  "passwordProfile": {
    "forceChangePasswordNextSignIn":true,
    "password":"Contoso1234"
  }
}

RespostaResponse

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
  "id": "4628e7df-dff3-407c-a08f-75f08c0806dc",
  "businessPhones": [],
  "displayName": "MyTestUser1",
  "givenName": null,
  "jobTitle": null,
  "mail": null,
  "mobilePhone": null,
  "officeLocation": null,
  "preferredLanguage": null,
  "surname": null,
  "userPrincipalName": "MyTestUser1@contoso.com"
}

Etapa 2: disparar uma detecção de riscoStep 2: Trigger a risk detection

Disparar uma detecção de riscoTrigger a risk detection

Uma maneira de disparar uma detecção de risco em uma conta de usuário é entrar no portal do Azure anonimamente.One way to trigger a risk detection on a user account is to sign in to the Azure portal anonymously. Neste tutorial, o navegador Tor é usado para entrar anonimamente.In this tutorial, the Tor browser is used to sign in anonymously.

  1. Abra o navegador e insira portal.azure.com o endereço do site.Open the browser and enter portal.azure.com for the site address.
  2. Entre no portal usando as credenciais da conta MyTestUser1 criada anteriormente.Sign in to the portal using the credentials for the MyTestUser1 account that you previously created. Você será solicitado a alterar a senha existente.You will be asked to change the existing password.

Listar detecções de riscoList risk detections

Quando você se inscreveu no portal do Azure usando o navegador anônimo, um evento anonymizedIPAddress de risco foi detectado.When you signed in to the Azure portal using the anonymous browser, an anonymizedIPAddress risk event was detected. Você pode usar o parâmetro de consulta para obter apenas as detecções de risco associadas à conta de usuário $filter MyTestUser1.You can use the $filter query parameter to get only the risk detections that are associated with the MyTestUser1 user account.

SolicitaçãoRequest

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

RespostaResponse

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

Observação: Pode levar alguns minutos para que o evento seja retornado.Note: It may take a few minutes for the event to be returned.

Etapa 3: Criar uma política de acesso condicionalStep 3: Create a conditional access policy

Você pode aproveitar políticas de acesso condicional em sua organização para permitir que os usuários se automediam quando o risco é detectado.You can leverage conditional access policies in your organization to allow users to self-remediate when risk is detected. A automediação permite que os usuários desbloqueiem a si mesmos para acessar seus recursos com segurança depois de concluir o prompt de política.Self-remediation enables your users to unblock themselves to access their resources securely after completing the policy prompt. Nesta etapa, você cria uma política de acesso condicional que exige que o usuário entre usando o MFA se ocorrer uma detecção de médio ou alto risco.In this step, you create a conditional access policy that requires the user to sign in using MFA if a medium or high risk detection occurs.

Configurar a autenticação multifatorSet up multi-factor authentication

Ao configurar uma conta para MFA, você pode escolher entre vários métodos para autenticar o usuário.When setting up an account for MFA, you can choose from several methods for authenticating the user. Escolha o melhor método para que sua situação conclua este tutorial.Choose the best method for your situation to complete this tutorial.

  1. Entre no site para manter sua conta segura usando a conta MyTestUser1.Sign in the to the keep your account secure site using the MyTestUser1 account.
  2. Conclua o procedimento de instalação do MFA usando o método apropriado para sua situação, como ter uma mensagem de texto enviada para seu telefone.Complete the MFA setup procedure using the appropriate method for your situation, such as having a text message sent to your phone.

Criar a política de acesso condicionalCreate the conditional access policy

A política de acesso condicional fornece a capacidade de definir as condições da política para identificar níveis de risco de entrada.The conditional access policy provides the ability to set the conditions of the policy to identify sign-in risk levels. Os níveis de risco low podem ser , , , medium high none .Risk levels can be low, medium, high, none. Na resposta que foi retornada da listagem das detecções de risco para MyTestUser1, podemos ver que o nível de risco é medium .In the response that was returned from listing the risk detections for MyTestUser1, we can see that the risk level is medium. Este exemplo mostra como exigir MFA para MyTestUser1 que foi identificado como um usuário arriscado.This example shows how to require MFA for MyTestUser1 who was identified as a risky user.

SolicitaçãoRequest

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

RespostaResponse

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

Com essa política de acesso condicional em uso, a conta MyTestUser1 agora é necessária para usar o MFA ao entrar porque o nível de risco de entrada é médio ou   alto.With this conditional access policy in place, the MyTestUser1 account is now required to use MFA when signing in because the sign-in risk level is medium or high.

Entrar e concluir a autenticação multifa factorSign in and complete multi-factor authentication

Ao entrar no navegador anônimo, um risco é detectado, mas é remediado concluindo o MFA.By signing in to the anonymous browser, a risk is detected, but it is remediated by completing MFA.

  1. Abra o navegador e insira  portal.azure.com   o endereço do site.Open the browser and enter portal.azure.com for the site address.
  2. Entre no portal usando as credenciais da conta MyTestUser1   e conclua o processo MFA.Sign in to the portal using the credentials for the MyTestUser1 account and complete the MFA process.

Listar detecções de riscoList risk detections

Como o MFA foi concluído.Because MFA was completed. Agora, quando você lista detecções de risco, riskState mostra o evento como remediated .Now, when you list risk detections the riskState shows the event as remediated.

SolicitaçãoRequest

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

RespostaResponse

{
  "id": "ba9d45f16d8f87f6ae974efda7336b2120962a398cb362dfd9e5bdc8e9d149d0",
  "requestId": "156c01fb-31cf-4a10-b9a9-beee93e6a400",
  "correlationId": "a8aaac45-fe22-46df-babf-10a8dba85d62",
  "riskType": "anonymizedIPAddress",
  "riskEventType": "anonymizedIPAddress",
  "riskState": "remediated",
  "riskLevel": "medium",
  "riskDetail": "userPassedMFADrivenByRiskBasedPolicy",
  "source": "IdentityProtection",
  "detectionTimingType": "realtime",
  "activity": "signin",
  "tokenIssuerType": "AzureAD",
  "ipAddress": "185.220.101.213",
  "activityDateTime": "2020-11-12T23:45:22.4092789Z",
  "detectedDateTime": "2020-11-12T23:45:22.4092789Z",
  "lastUpdatedDateTime": "2020-11-12T23:47:57.7831423Z",
  "userId": "4b608561-9258-44ba-8cdb-3286dcbf0e3b",
  "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": "Schoenwalde-Glien",
    "state": "Brandenburg",
    "countryOrRegion": "DE",
    "geoCoordinates": {
      "latitude": 52.61983,
      "longitude": 13.12743
    }
  }
}

Etapa 4 (Opcional) Impedir que o usuário entreStep 4 (Optional) Block the user from signing in

Em vez de oferecer a oportunidade para o usuário se automediar, você pode impedir que o usuário entre.Instead of providing the opportunity for the user to self-remediate, you can block the user from signing in. Nesta etapa, você cria uma nova política de acesso condicional que impede que o usuário entre se ocorrer uma detecção de médio ou alto risco.In this step, you create a new conditional access policy that blocks the user from signing in if a medium or high risk detection occurs. A diferença nas políticas é que o builtInControls está definido como block .The difference in policies is that the builtInControls is set to block.

SolicitaçãoRequest

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

RespostaResponse

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

Com essa política de acesso condicional em uso, a conta MyTestUser1 agora está impedida de entrar porque o nível de risco de entrada medium é ou high .With this conditional access policy in place, the MyTestUser1 account is now blocked from signing in because the sign-in risk level is medium or high.

Login bloqueado

Etapa 5: descartar usuários arriscadosStep 5: Dismiss risky users

Se você acredita que o usuário não está em risco e não deseja impor uma política de acesso condicional, pode descartar manualmente o usuário arriscado.If you believe the user is not at risk, and you don’t want to enforce a conditional access policy, you can manually dismiss the risky user.

Descartar o usuário arriscadoDismiss the risky user

SolicitaçãoRequest

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

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

RespostaResponse

HTTP/1.1 204 No Content

Listar usuários arriscadosList risky users

Depois de descartar o usuário de risco, você pode ver na resposta ao listar usuários arriscados que a conta de usuário MyTestUser1 agora tem um nível de risco e um none riskState de dismissed .After dismissing the risk user, you can see in the response when listing risky users that the MyTestUser1 user account now has a risk level of none and a riskState of dismissed.

SolicitaçãoRequest

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

RespostaResponse

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#riskyUsers",
  "value": [
    {
      "id": "4628e7df-dff3-407c-a08f-75f08c0806dc",
      "isDeleted": false,
      "isProcessing": false,
      "riskLevel": "none",
      "riskState": "dismissed",
      "riskDetail": "adminDismissedAllRiskForUser",
      "riskLastUpdatedDateTime": "2020-11-03T21:48:53.4298425Z",
      "userDisplayName": "MyTestUser1",
      "userPrincipalName": "MyTestUser1@contoso.com"
    }
  ]
}

Etapa 6: Limpar recursosStep 6: Clean up resources

Nessa etapa, remova os recursos que criou.In this step, you remove the resources that you created.

Excluir a conta de usuárioDelete the user account

Exclua a conta de usuário MyTestUser1.Delete the MyTestUser1 user account.

SolicitaçãoRequest

DELETE https://graph.microsoft.com/v1.0/users/4628e7df-dff3-407c-a08f-75f08c0806dc

RespostaResponse

No Content - 204

Excluir a política de acesso condicionalDelete the conditional access policy

Exclua a política de acesso condicional criada.Delete the conditional access policy that you created.

SolicitaçãoRequest

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

RespostaResponse

No Content - 204

Confira tambémSee also

Neste tutorial, você usou muitas APIs para realizar tarefas.In this tutorial, you used many APIs to accomplish tasks. Explore a referência da API para essas APIs para saber mais sobre o que as APIs podem fazer.Explore the API reference for these APIs to learn more about what the APIs can do.