Partilhar via


Acesse a API do Microsoft Defender for Cloud Apps com contexto de usuário

Esta página descreve como criar um aplicativo para obter acesso programático ao Defender for Cloud Apps em nome de um usuário.

Se você precisar de acesso programático ao Microsoft Defender for Cloud Apps sem um usuário, consulte Access Microsoft Defender for Cloud Apps with application context.

Se você não tiver certeza de qual acesso você precisa, leia a página Introdução.

O Microsoft Defender for Cloud Apps expõe grande parte de seus dados e ações por meio de um conjunto de APIs programáticas. Essas APIs permitirão automatizar fluxos de trabalho e inovar com base nos recursos do Microsoft Defender for Cloud Apps. O acesso à API requer autenticação OAuth2.0. Para obter mais informações, consulte Fluxo de código de autorização do OAuth 2.0.

Em geral, você precisará seguir as seguintes etapas para usar as APIs:

  • Criar um aplicativo Microsoft Entra
  • Obter um token de acesso usando este aplicativo
  • Use o token para acessar a API do Defender for Cloud Apps

Esta página explica como criar um aplicativo Microsoft Entra, obter um token de acesso ao Microsoft Defender for Cloud Apps e validar o token.

Nota

Ao acessar a API do Microsoft Defender for Cloud Apps em nome de um usuário, você precisará da permissão de Aplicativo e da permissão de usuário corretas. Se você não estiver familiarizado com as permissões de usuário no Microsoft Defender for Cloud Apps, consulte Gerenciar acesso de administrador.

Gorjeta

Se você tiver a permissão para executar uma ação no portal, você tem a permissão para executar a ação na API.

Criar uma aplicação

  1. Entre no Azure com uma conta de usuário que tenha a função de Administrador Global .

  2. Navegue até Registros do>aplicativo Microsoft Entra ID>Novo registro.

    Image of Microsoft Azure and navigation to application registration.

  3. Quando a página Registar uma aplicação for apresentada, introduza as informações de registo da aplicação:

    • Nome - Introduza um nome de aplicação significativo que será apresentado aos utilizadores da aplicação.

    • Tipos de conta suportados - Selecione as contas que quer que a sua aplicação suporte.

      Tipos de conta suportados Description
      Contas apenas neste diretório organizacional Selecione esta opção se estiver a criar uma aplicação de linha de negócio (LOB). Essa opção não estará disponível se você não estiver registrando o aplicativo em um diretório.

      Esta opção é mapeada para um único inquilino apenas do Microsoft Entra.

      Esta é a opção predefinida, a menos que esteja a registar a aplicação fora de um diretório. Nos casos em que o aplicativo está registrado fora de um diretório, o padrão é contas multilocatárias e pessoais da Microsoft do Microsoft Entra.
      Contas em qualquer diretório organizacional Selecione esta opção se quiser visar todos os clientes comerciais ou pedagógicos.

      Esta opção é mapeada para um multilocatário somente Microsoft Entra.

      Se você registrou o aplicativo como locatário único somente do Microsoft Entra, poderá atualizá-lo para ser multilocatário do Microsoft Entra e voltar para um único locatário por meio do painel Autenticação .
      Contas em qualquer diretório organizacional e contas Microsoft pessoais Selecione esta opção para visar o maior conjunto de clientes.

      Esta opção é mapeada para contas multilocatárias e pessoais da Microsoft Entra.

      Se você registrou o aplicativo como contas multilocatárias e pessoais da Microsoft do Microsoft Entra, não poderá alterar isso na interface do usuário. Em vez disso, tem de utilizar o editor de manifesto de aplicação para alterar os tipos de conta suportados.
    • URI de Redirecionamento (opcional) - Selecione o tipo de aplicação que está a criar, Web ou Cliente público (móvel e ambiente de trabalho) e, em seguida, introduza o URI de redirecionamento (ou URL de resposta) para a sua aplicação.

      • Para aplicações Web, indique o URL base da sua aplicação. Por exemplo, http://localhost:31544 pode ser o URL de uma aplicação Web em execução no seu computador local. Os utilizadores utilizariam este URL para iniciar sessão numa aplicação de cliente Web.
      • Para aplicativos cliente públicos, forneça o URI usado pelo ID do Microsoft Entra para retornar respostas de token. Introduza um valor específico para a aplicação, por exemplo myapp://auth.

      Para ver exemplos específicos de aplicações Web ou nativas, veja os nossos inícios rápidos.

      Quando terminar, selecione Registar.

  4. Permita que seu Aplicativo acesse o Microsoft Defender for Cloud Apps e atribua-lhe a permissão 'Ler alertas':

    • Na página do seu aplicativo, selecione Permissões>de API Adicionar APIs de permissão>que minha organização usa>, digite Microsoft Cloud App Security e selecione Microsoft Cloud App Security.

    • Nota: O Microsoft Cloud App Security não aparece na lista original. Comece a escrever seu nome na caixa de texto para vê-lo aparecer. Certifique-se de digitar esse nome, mesmo que o produto agora se chame Defender for Cloud Apps.

      add permission.

    • Escolha Permissões>delegadas Investigação.Leia> selecione Adicionar permissões

      application permissions.

    • Observação importante: Selecione as permissões relevantes. Investigation.Read é apenas um exemplo. Para outros escopos de permissão, consulte Escopos de permissão suportados

      • Para determinar de qual permissão você precisa, consulte a seção Permissões na API que você está interessado em chamar.
    • Selecione Conceder consentimento de administrador

      Nota: Sempre que adicionar permissão, tem de selecionar Conceder consentimento de administrador para que a nova permissão entre em vigor.

      Image of Grant permissions.

  5. Anote o ID do aplicativo e o ID do locatário:

    • Na página do seu aplicativo, vá para Visão geral e copie as seguintes informações:

      Image of created app id.

Escopos de permissão suportados

Nome da permissão Description Ações suportadas
Investigação.read Execute todas as ações suportadas em atividades e alertas, exceto alertas de fechamento.
Visualize intervalos de IP, mas não adicione, atualize ou exclua.

Executar todas as ações das entidades.
Lista de atividades, busca, feedback
Lista de alertas, buscar, marcar como lido/não lido
Lista de entidades, buscar, buscar árvore
Lista de sub-redes
Investigação.gerenciar Execute todas as ações investigation.read além de gerenciar alertas e intervalos de IP. Lista de atividades, busca, feedback
Lista de alertas, buscar, marcar como lido/não lido, fechar
Lista de entidades, buscar, buscar árvore
Lista de sub-redes, criar/atualizar/excluir
Descoberta.ler Execute todas as ações suportadas em atividades e alertas, exceto alertas de fechamento.
Listar relatórios e categorias de descoberta.
Lista de alertas, buscar, marcar como lido/não lido
Relatórios de lista de descoberta, categorias de relatório de lista
Descoberta.gerenciar Permissões Discovery.read
Feche alertas, carregue arquivos de descoberta e gere scripts de bloco
Lista de alertas, buscar, marcar como lido/não lido, fechar
Relatórios de lista de descoberta, categorias de relatório de lista
Upload de arquivo de descoberta, gerar script de bloco
Configurações.ler Listar intervalos de IP. Lista de sub-redes
Configurações.gerenciar Listar e gerenciar intervalos de IP. Lista de sub-redes, criar/atualizar/excluir

Obter um token de acesso

Para obter mais informações sobre tokens do Microsoft Entra, consulte o tutorial do Microsoft Entra

Utilizar C#

  • Copie/cole a seguinte classe em seu aplicativo.

  • Use o método AcquireUserTokenAsync com sua ID de aplicativo, ID de locatário, nome de usuário e senha para adquirir um token.

    namespace MDA
    {
        using System.Net.Http;
        using System.Text;
        using System.Threading.Tasks;
        using Newtonsoft.Json.Linq;
    
        public static class MDAUtils
        {
            private const string Authority = "https://login.microsoftonline.com";
    
            private const string MDAId = "05a65629-4c1b-48c1-a78b-804c4abdd4af";
    
            private const string Scope = "Investigation.read";
    
            public static async Task<string> AcquireUserTokenAsync(string username, string password, string appId, string tenantId)
            {
                using (var httpClient = new HttpClient())
                {
                    var urlEncodedBody = $"scope={MDAId}/{Scope}&client_id={appId}&grant_type=password&username={username}&password={password}";
    
                    var stringContent = new StringContent(urlEncodedBody, Encoding.UTF8, "application/x-www-form-urlencoded");
    
                    using (var response = await httpClient.PostAsync($"{Authority}/{tenantId}/oauth2/token", stringContent).ConfigureAwait(false))
                    {
                        response.EnsureSuccessStatusCode();
    
                        var json = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
    
                        var jObject = JObject.Parse(json);
    
                        return jObject["access_token"].Value<string>();
                    }
                }
            }
        }
    } 
    

Validar o token

Verifique se você tem um token correto:

  • Copie/cole no JWT o token que você obteve na etapa anterior para decodificá-lo

  • Valide se você recebe uma declaração 'scp' com as permissões desejadas do aplicativo

  • Na captura de tela abaixo, você pode ver um token decodificado adquirido do aplicativo no tutorial:

    Image of token validation.

Use o token para acessar a API do Microsoft Defender for Cloud Apps

  • Escolha a API que deseja usar. Para obter mais informações, consulte API do Defender for Cloud Apps.

  • Defina o cabeçalho Authorization na solicitação HTTP enviada para "Bearer {token}" (Portador é o esquema de Autorização)

  • O tempo de expiração do token é de 1 hora (você pode enviar mais de uma solicitação com o mesmo token)

  • Exemplo de envio de uma solicitação para obter uma lista de alertas usando C#

    var httpClient = new HttpClient();
    
    var request = new HttpRequestMessage(HttpMethod.Get, "https://portal.cloudappsecurity.com/cas/api/v1/alerts/");
    
    request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token);
    
    var response = httpClient.SendAsync(request).GetAwaiter().GetResult();
    
    // Do something useful with the response
    

Consulte também