Compartilhar via


Aceder Microsoft Defender para Aplicativos de Nuvem API com contexto de utilizador

Esta página descreve como criar uma aplicação para obter acesso programático a Defender para Aplicativos de Nuvem em nome de um utilizador.

Se precisar de acesso programático Microsoft Defender para Aplicativos de Nuvem sem um utilizador, veja Access Microsoft Defender para Aplicativos de Nuvem com o contexto da aplicação.

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

Microsoft Defender para Aplicativos de Nuvem expõe grande parte dos seus dados e ações através de um conjunto de APIs programáticas. Essas APIs permitem-lhe automatizar fluxos de trabalho e inovar com base nas capacidades Microsoft Defender para Aplicativos de Nuvem. O acesso à API requer autenticação OAuth2.0. Para obter mais informações, veja OAuth 2.0 Authorization Code Flow (Fluxo de Código de Autorização do OAuth 2.0).

Em geral, tem de seguir os seguintes passos para utilizar as APIs:

  • Criar uma aplicação Microsoft Entra
  • Obter um token de acesso com esta aplicação
  • Utilizar o token para aceder à API Defender para Aplicativos de Nuvem

Esta página explica como criar uma aplicação Microsoft Entra, obter um token de acesso para Microsoft Defender para Aplicativos de Nuvem e validar o token.

Observação

Ao aceder à API Microsoft Defender para Aplicativos de Nuvem em nome de um utilizador, precisará da permissão de Aplicação e da permissão de utilizador corretas. Se não estiver familiarizado com as permissões de utilizador no Microsoft Defender para Aplicativos de Nuvem, veja Gerir o acesso de administrador.

Dica

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

Criar um aplicativo

  1. Na centro de administração do Microsoft Entra, registe uma nova aplicação. Para obter mais informações, veja Início Rápido: Registar uma aplicação com o centro de administração do Microsoft Entra.

  2. Quando a página Registrar um aplicativo for exibida, insira as informações de registro do aplicativo:

    • Nome – introduza um nome de aplicação relevante que seja apresentado aos utilizadores da aplicação.

    • Tipos de conta com suporte: selecione as contas às quais você gostaria que seu aplicativo desse suporte.

      Tipos de conta com suporte Descrição
      Contas apenas neste diretório organizacional Selecione esta opção se você está criando um aplicativo de linha de negócios (LOB). Esta opção não está disponível se não estiver a registar a aplicação num diretório.

      Esta opção mapeia para Microsoft Entra inquilino único.

      Essa é a opção padrão, a menos que você esteja registrando o aplicativo fora de um diretório. Nos casos em que a aplicação está registada fora de um diretório, a predefinição é Microsoft Entra contas Microsoft multi-inquilino e pessoais.
      Contas em qualquer diretório organizacional Selecione essa opção se você deseja direcionar para todos os clientes corporativos e educacionais.

      Esta opção mapeia para um multi-inquilino só de Microsoft Entra.

      Se registou a aplicação como Microsoft Entra inquilino único, pode atualizá-la para ser Microsoft Entra multi-inquilino e regressar ao inquilino único através do painel Autenticação.
      Contas em qualquer diretório organizacional e contas pessoais da Microsoft Selecione essa opção para direcionar ao conjunto mais amplo de clientes.

      Esta opção mapeia para Microsoft Entra contas Microsoft multi-inquilino e pessoais.

      Se registou a aplicação como Microsoft Entra contas Microsoft multi-inquilino e pessoais, não poderá alterá-la na IU. Em vez disso, use o editor de manifesto do aplicativo para alterar os tipos de conta com suporte.
    • URI de Redirecionamento (opcional) – selecione o tipo de aplicação que está a criar, **Web ou Cliente público (móvel & ambiente de trabalho) e, em seguida, introduza o URI de redirecionamento (ou URL de resposta) para a sua aplicação.

      • Para aplicativos Web, informe a URL base do aplicativo. Por exemplo, http://localhost:31544 pode ser uma URL para um aplicativo Web em execução no seu computador local. Os usuários usariam essa URL para entrar em um aplicativo cliente Web.
      • Para aplicações cliente públicas, forneça o URI utilizado pelo Microsoft Entra ID para devolver respostas de tokens. Insira um valor específico para o aplicativo, por exemplo, myapp://auth.

      Para ver exemplos específicos de aplicativos Web ou aplicativos nativos, confira os inícios rápidos.

      Ao terminar, selecione Registrar.

  3. Permita que a aplicação aceda a Microsoft Defender para Aplicativos de Nuvem e atribua-lhe a permissão "Alertas de leitura":

    • Na página da sua aplicação, selecione Permissões> da API Adicionar APIs depermissão> quea minha organização utiliza>, escreva Microsoft Cloud App Security e, em seguida, selecione Microsoft Cloud App Security.

    • Nota: o Microsoft Cloud App Security não aparece na lista original. Comece a escrever o respetivo nome na caixa de texto para vê-lo aparecer. Certifique-se de que escreve este nome, apesar de o produto ser agora denominado Defender para Aplicativos de Nuvem.

      Captura de ecrã a mostrar a adição de permissões.

    • Selecione Permissões> delegadasInvestigação.Ler> selecione Adicionar permissões

      Captura de ecrã a mostrar a adição de permissões de aplicação.

    • Nota importante: selecione as permissões relevantes. Investigation.Read é apenas um exemplo. Para outros âmbitos de permissão, veja Âmbitos de permissão suportados

      • Para determinar de que permissão precisa, veja a secção Permissões na API que está interessado em chamar.
    • Selecione Conceder consentimento do administrador

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

      Captura de ecrã a mostrar a concessão de permissões de administrador.

  4. Anote o ID da aplicação e o ID do inquilino:

    • Na página da aplicação, aceda a Descrição geral e copie as seguintes informações:

      Captura de ecrã do ID da aplicação criado.

Âmbitos de permissão suportados

Nome da permissão Descrição Ações suportadas
Investigação.read Execute todas as ações suportadas em atividades e alertas, exceto alertas de fecho.
Ver intervalos de IP, mas não adicionar, atualizar ou eliminar.

Executar todas as ações de entidades.
Lista de atividades, obtenção, feedback
Lista de alertas, obtenção, marca como lida/não lida
Lista de entidades, obtenção e obtenção de árvore
Lista de sub-redes
Investigation.manage Efetue todas as ações investigation.read, além de gerir alertas e intervalos de IP. Lista de atividades, obtenção, feedback
Lista de alertas, obtenção, marca como lida/não lida, fechar
Lista de entidades, obtenção e obtenção de árvore
Lista de sub-redes, criar/atualizar/eliminar
Discovery.read Execute todas as ações suportadas em atividades e alertas, exceto alertas de fecho.
Listar relatórios e categorias de deteção.
Lista de alertas, obtenção, marca como lida/não lida
Relatórios de lista de deteção, listar categorias de relatórios
Discovery.manage Permissões discovery.read
Fechar alertas, carregar ficheiros de deteção e gerar scripts de blocos
Lista de alertas, obtenção, marca como lida/não lida, fechar
Relatórios de lista de deteção, listar categorias de relatórios
Carregamento de ficheiros de deteção, gerar script de bloco
Definições.read Listar intervalos de IP. Lista de sub-redes
Settings.manage Listar e gerir intervalos de IP. Lista de sub-redes, criar/atualizar/eliminar

Obter um token de acesso

Para obter mais informações sobre tokens de Microsoft Entra, veja Microsoft Entra tutorial

Utilizar C#

  • Copie/Cole a seguinte classe na sua aplicação.
  • Utilize o método AcquireUserTokenAsync com o ID da aplicação, o ID do inquilino e a autenticação para adquirir um token.

Observação

Embora o seguinte exemplo de código demonstre como adquirir um token com o fluxo de nome de utilizador e palavra-passe, a Microsoft recomenda que utilize fluxos de autenticação mais seguros num ambiente de produção.

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 tem um token correto:

  • Copie/cole no JWT o token que obteve no passo anterior para o descodificar

  • Confirme que obtém uma afirmação "scp" com as permissões de aplicação pretendidas

  • Na captura de ecrã abaixo, pode ver um token descodificado adquirido na aplicação no tutorial:

    Captura de ecrã a mostrar a validação de tokens.

Utilizar o token para aceder à API Microsoft Defender para Aplicativos de Nuvem

  • Escolha a API que pretende utilizar. Para obter mais informações, veja Defender para Aplicativos de Nuvem API.

  • Defina o cabeçalho Autorização no pedido HTTP que envia para "Portador {token}" (Portador é o esquema de Autorização)

  • A Hora de expiração do token é de 1 hora (pode enviar mais do que um pedido com o mesmo token)

  • Exemplo de envio de um pedido para obter uma lista de alertas com 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
    

Confira também