Criar um registro de aplicativo do Microsoft Entra no Azure Data Explorer
A autenticação de aplicativo do Microsoft Entra é usada para aplicativos, como um serviço autônomo ou um fluxo agendado, que precisam acessar o Azure Data Explorer sem a presença de um usuário. Se você estiver se conectando a um banco de dados Data Explorer do Azure usando um aplicativo, como um aplicativo Web, deverá autenticar usando a autenticação de entidade de serviço. Este artigo detalha como criar e registrar uma entidade de serviço do Microsoft Entra e, em seguida, autorizá-la a acessar um banco de dados do Azure Data Explorer.
Criar registro de aplicativo do Microsoft Entra
A autenticação de aplicativo do Microsoft Entra requer a criação e o registro de um aplicativo com a ID do Microsoft Entra. Uma entidade de serviço é criada automaticamente quando o registro do aplicativo é criado em um locatário do Microsoft Entra.
O registro do aplicativo pode ser criado no portal do Azure ou programaticamente com a CLI do Azure. Escolha a guia que se adapta ao seu cenário.
Registre o aplicativo
Entre no portal do Azure e abra a folha ID do Microsoft Entra.
Navegue até Registros de aplicativo e selecione Novo registro.
Nomeie o aplicativo, por exemplo, "example-app".
Selecione um tipo de conta com suporte, que determina quem poderá usar o aplicativo.
Em URI de redirecionamento, selecione Web para o tipo de aplicativo que deseja criar. O URI é opcional e, nesse caso, é deixado em branco.
Selecione Registrar.
Configurar a autenticação
Há dois tipos de autenticação disponíveis para as entidades de serviço: autenticação baseada em senha (segredo do aplicativo) e em certificado. A seção a seguir descreve o uso de uma autenticação baseada em senha para as credenciais do aplicativo. Como alternativa, você pode usar um certificado X509 para autenticar seu aplicativo. Para obter mais informações, consulte Como configurar a autenticação baseada em certificado do Microsoft Entra.
Ao longo desta seção, você copiará os seguintes valores: ID do aplicativo e valor da chave. Cole esses valores em algum lugar, como um editor de texto, para uso na etapa configurar credenciais de cliente para o banco de dados.
Navegue até a folha Visão geral .
Copie a ID do aplicativo (cliente) e a ID do diretório (locatário).
Observação
Você precisará da ID do aplicativo e da ID do locatário para autorizar a entidade de serviço a acessar o banco de dados.
Na folha Certificados e segredos, selecione Novo segredo do cliente.
Insira uma descrição e expiração.
Selecione Adicionar.
Copie o valor da chave.
Observação
Quando você sair dessa página, o valor da chave não poderá mais ser acessado.
Você criou o aplicativo do Microsoft Entra e a entidade de serviço.
Configurar permissões delegadas para o aplicativo - opcional
Se o aplicativo precisar acessar o banco de dados usando as credenciais do usuário chamador, configure permissões delegadas para o aplicativo. Por exemplo, se você estiver criando uma API Web e quiser autenticar usando as credenciais do usuário que está chamando sua API.
Se você precisar apenas de acesso a um recurso de dados autorizado, ignore esta seção e continue a conceder acesso a uma entidade de serviço ao banco de dados.
Navegue até a folha Permissões de API do seu registro de aplicativo.
Selecione Adicionar permissão.
Selecione APIs que a minha organização usa.
Pesquise e selecione Azure Data Explorer.
Em Permissões delegadas, marque a caixa user_impersonation .
Selecione Adicionar Permissões.
Conceder a uma entidade de serviço acesso ao banco de dados
Depois que o registro do aplicativo for criado, você precisará conceder à entidade de serviço correspondente acesso ao banco de dados. O exemplo a seguir fornece acesso ao visualizador. Para outras funções, consulte Gerenciar permissões de banco de dados.
Use os valores de ID do Aplicativo e ID do Locatário conforme copiados em uma etapa anterior.
Execute o seguinte comando no editor de consultas, substituindo os valores de espaço reservado 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 de caracteres que aparece como observações quando você consulta as funções associadas a um banco de dados.
Observação
Depois de criar o registro do aplicativo, pode haver um atraso de vários minutos até que ele possa ser referenciado. Se você receber um erro informando que o aplicativo não foi encontrado, aguarde e tente novamente.
Para obter mais informações sobre funções, consulte Controle de acesso baseado em função.
Usar credenciais de aplicativo para acessar um banco de dados
Use as credenciais do aplicativo para acessar programaticamente seu banco de dados usando a biblioteca de clientes.
. . .
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}");
Observação
Especifique a ID do aplicativo e a chave do registro do aplicativo (entidade de serviço) criado anteriormente.
Para obter mais informações, consulte Como autenticar com a MSAL (Biblioteca de Autenticação da Microsoft) em aplicativos e usar o Azure Key Vault com o aplicativo Web .NET Core.
Solução de problemas
Erro de recurso inválido
Se o aplicativo for usado para autenticar usuários ou aplicativos para acesso, você deverá configurar permissões delegadas para o aplicativo de serviço. Declare que seu aplicativo pode autenticar usuários ou aplicativos para acesso. Caso isso não seja feito, ocorrerá um erro semelhante ao mostrado a seguir quando uma tentativa de autenticação for feita:
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...
Você precisará seguir as instruções para configurar permissões delegadas para o aplicativo.
Erro ao habilitar o consentimento do usuário
O administrador de locatários do Microsoft Entra pode promulgar uma política que impede que os usuários do locatário dêem consentimento aos aplicativos. Isso resultará em um erro semelhante ao seguinte quando um usuário tentar entrar no aplicativo:
AADSTS65001: The user or administrator has not consented to use the application with ID '<App ID>' named 'App Name'
Você precisará entrar em contato com o administrador do Microsoft Entra para conceder consentimento a todos os usuários no locatário ou habilitar o consentimento do usuário para seu aplicativo específico.