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
Inicie sessão no portal do Azure e abra o painel Microsoft Entra ID.
Navegue até Registos de aplicações e selecione Novo registo.
Atribua um nome à aplicação, por exemplo "example-app".
Selecione um tipo de conta suportado, que determina quem pode utilizar a aplicação.
Em URI de Redirecionamento, selecione Web para o tipo de aplicação que pretende criar. O URI é opcional e é deixado em branco neste caso.
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.
Navegue para o painel Descrição geral .
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.
No painel Certificados & segredos , selecione Novo segredo do cliente.
Introduza uma descrição e expiração.
Selecione Adicionar.
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.
Navegue para o painel permissões da API do registo de Aplicações.
Selecione Adicionar uma permissão.
Selecione APIs que a minha organização utiliza.
Procure e selecione Azure Data Explorer.
Em Permissões delegadas, selecione a caixa user_impersonation .
Selecione Adicionar permissões.
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.
Utilize os valores do ID da Aplicação e do ID do Inquilino como copiados num passo anterior.
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.
Ativar erro de consentimento do utilizador
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.