Partilhar via


Aceder Microsoft Defender for Cloud Apps API com contexto de utilizador

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

Se precisar de acesso programático Microsoft Defender for Cloud Apps sem um utilizador, veja Access Microsoft Defender for Cloud Apps com o contexto da aplicação.

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

Microsoft Defender for Cloud Apps 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 for Cloud Apps. 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 for Cloud Apps

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

Nota

Ao aceder à API Microsoft Defender for Cloud Apps 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 for Cloud Apps, veja Gerir o acesso de administrador.

Sugestão

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

Criar uma aplicação

  1. Na centro de administração 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 Microsoft Entra.

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

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

    • Tipos de conta suportados – selecione as contas que pretende que a sua aplicação suporte.

      Tipos de conta suportados Descrição
      Contas apenas neste diretório organizacional Selecione esta opção se estiver a criar uma aplicação de linha de negócio (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.

      Esta é a opção predefinida, a menos que esteja a registar a aplicação 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 esta opção se quiser direcionar todos os clientes empresariais e educativos.

      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 Microsoft pessoais Selecione esta opção para direcionar o conjunto mais vasto 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, tem de utilizar o editor de manifestos da 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 & ambiente de trabalho) e, em seguida, introduza o URI de redirecionamento (ou URL de resposta) para a sua aplicação.

      • Para aplicações Web, forneça 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 cliente Web.
      • Para aplicações cliente públicas, forneça o URI utilizado pelo Microsoft Entra ID para devolver respostas de tokens. Introduza um valor específico para a sua aplicação, como myapp://auth.

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

      Quando terminar, selecione Registar.

  3. Permita que a aplicação aceda a Microsoft Defender for Cloud Apps 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 for Cloud Apps.

      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.

Nota

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 for Cloud Apps

  • Escolha a API que pretende utilizar. Para obter mais informações, veja Defender for Cloud Apps 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
    

Consulte também