Criar um registo de aplicação Microsoft Entra no Azure Data Explorer

Microsoft Entra a autenticação de aplicações é utilizada para aplicações, como um serviço automática ou um fluxo agendado, que precisam de aceder ao Azure Data Explorer sem um utilizador presente. Se estiver a ligar a uma base de dados do Azure Data Explorer com uma aplicação, como uma aplicação Web, deve autenticar com a autenticação do principal de serviço. Este artigo detalha como criar e registar um principal de serviço Microsoft Entra e, em seguida, autorizá-lo a aceder a uma base de dados do Azure Data Explorer.

Criar Microsoft Entra registo de aplicação

Microsoft Entra a autenticação de aplicações requer a criação e o registo de uma aplicação com Microsoft Entra ID. Um principal de serviço é criado automaticamente quando o registo da aplicação é criado num inquilino Microsoft Entra.

O registo da aplicação pode ser criado no portal do Azure ou programaticamente com a CLI do Azure. Selecione o separador que se adequa ao seu cenário.

Registar a aplicação

  1. Inicie sessão no portal do Azure e abra o painel Microsoft Entra ID.

  2. Navegue até Registos de aplicações e selecione Novo registo.

    Captura de ecrã a mostrar como iniciar um novo registo de aplicação.

  3. Atribua um nome à aplicação, por exemplo "example-app".

  4. Selecione um tipo de conta suportado, que determina quem pode utilizar a aplicação.

  5. Em URI de Redirecionamento, selecione Web para o tipo de aplicação que pretende criar. O URI é opcional e é deixado em branco neste caso.

    Captura de ecrã a mostrar como registar um novo registo de aplicação.

  6. Selecione Registar.

Configurar autenticação

Existem dois tipos de autenticação disponíveis para principais de serviço: autenticação baseada em palavra-passe (segredo da aplicação) e autenticação baseada em certificado. A secção seguinte descreve a utilização de uma autenticação baseada em palavra-passe para as credenciais da aplicação. Em alternativa, pode utilizar um certificado X509 para autenticar a sua aplicação. Para obter mais informações, veja Como configurar Microsoft Entra autenticação baseada em certificados.

Ao longo desta secção, irá copiar os seguintes valores: ID da Aplicação e valor da chave. Cole estes valores algures, como um editor de texto, para utilizar no passo configurar credenciais de cliente para a base de dados.

  1. Navegue para o painel Descrição geral .

  2. Copie o ID da Aplicação (cliente) e o ID do Diretório (inquilino).

    Nota

    Precisará do ID da aplicação e do ID do inquilino para autorizar o principal de serviço a aceder à base de dados.

  3. No painel Certificados & segredos , selecione Novo segredo do cliente.

    Captura de ecrã a mostrar como iniciar a criação do segredo do cliente.

  4. Introduza uma descrição e expiração.

  5. Selecione Adicionar.

  6. Copie o valor da chave.

    Nota

    Quando sair desta página, o valor da chave não estará acessível.

Criou a sua aplicação Microsoft Entra e principal de serviço.

Configurar permissões delegadas para a aplicação – opcional

Se a sua aplicação precisar de aceder à base de dados com as credenciais do utilizador que chama, configure as permissões delegadas para a sua aplicação. Por exemplo, se estiver a criar uma API Web e quiser autenticar com as credenciais do utilizador que está a chamar a sua API.

Se apenas precisar de acesso a um recurso de dados autorizado, pode ignorar esta secção e continuar a Conceder acesso a um principal de serviço à base de dados.

  1. Navegue para o painel permissões da API do registo de Aplicações.

  2. Selecione Adicionar uma permissão.

  3. Selecione APIs que a minha organização utiliza.

  4. Procure e selecione Azure Data Explorer.

    Captura de ecrã a mostrar como adicionar a permissão da API do Azure Data Explorer.

  5. Em Permissões delegadas, selecione a caixa user_impersonation .

  6. Selecione Adicionar permissões.

    Captura de ecrã a mostrar como selecionar permissões delegadas com representação do utilizador.

Conceder acesso a um principal de serviço à base de dados

Assim que o registo da aplicação for criado, terá de conceder ao principal de serviço correspondente acesso à base de dados. O exemplo seguinte dá acesso ao visualizador. Para outras funções, veja Gerir permissões de base de dados.

  1. Utilize os valores do ID da Aplicação e do ID do Inquilino como copiados num passo anterior.

  2. Execute o seguinte comando no editor de consultas, substituindo os valores de marcador de posição ApplicationID e TenantID pelos valores reais:

    .add database <DatabaseName> viewers ('aadapp=<ApplicationID>;<TenantID>') '<Notes>'
    

    Por exemplo:

    .add database Logs viewers ('aadapp=1234abcd-e5f6-g7h8-i9j0-1234kl5678mn;9876abcd-e5f6-g7h8-i9j0-1234kl5678mn') 'App Registration'
    

    O último parâmetro é uma cadeia que aparece como notas quando consulta as funções associadas a uma base de dados.

    Nota

    Depois de criar o registo da aplicação, poderá haver um atraso de vários minutos até que possa ser referenciado. Se receber um erro a indicar que a aplicação não foi encontrada, aguarde e tente novamente.

Para obter mais informações sobre funções, veja Controlo de acesso baseado em funções.

Utilizar credenciais de aplicação para aceder a uma base de dados

Utilize as credenciais da aplicação para aceder programaticamente à sua base de dados com a biblioteca de cliente.

. . .
string applicationClientId = "<myClientID>";
string applicationKey = "<myApplicationKey>";
string authority = "<myApplicationTenantID>";
. . .
var kcsb = new KustoConnectionStringBuilder($"https://{clusterName}.kusto.windows.net/{databaseName}")
    .WithAadApplicationKeyAuthentication(
        applicationClientId,
        applicationKey,
        authority);
var client = KustoClientFactory.CreateCslQueryProvider(kcsb);
var queryResult = client.ExecuteQuery($"{query}");

Nota

Especifique o ID da aplicação e a chave do registo de aplicação (principal de serviço) criado anteriormente.

Para obter mais informações, veja Como autenticar com a Biblioteca de Autenticação da Microsoft (MSAL) em aplicações e utilizar o Azure Key Vault com a aplicação Web .NET Core.

Resolução de problemas

Erro de recurso inválido

Se a sua aplicação for utilizada para autenticar utilizadores ou aplicações para acesso, tem de configurar permissões delegadas para a aplicação de serviço. Declarar que a sua aplicação pode autenticar utilizadores ou aplicações para acesso. Se não o fizer, ocorrerá um erro semelhante ao seguinte, quando é efetuada uma tentativa de autenticação:

AADSTS650057: Invalid resource. The client has requested access to a resource which is not listed in the requested permissions in the client's application registration...

Terá de seguir as instruções para configurar permissões delegadas para a aplicação.

O administrador inquilino Microsoft Entra pode decretar uma política que impede os utilizadores inquilinos de darem consentimento às aplicações. Esta situação resultará num erro semelhante ao seguinte, quando um utilizador tenta iniciar sessão na sua aplicação:

AADSTS65001: The user or administrator has not consented to use the application with ID '<App ID>' named 'App Name'

Terá de contactar o administrador do Microsoft Entra para dar consentimento a todos os utilizadores no inquilino ou ativar o consentimento do utilizador para a sua aplicação específica.